I’m a final year undergraduate at Imperial College London, studying computer science. I have a strong interest in functional programming, Haskell in particular. My main focus is using advanced type system features to derive programs from statically available information. In my spare time, I enjoy playing with interactive theorem provers, most notably Coq.
- Deriving lenses using Generics (conference paper) (Csongor Kiss, Matthew Pickering, Toby Shaw) - IFL 2017, Bristol, UK
- VoxelCAD, a collaborative voxel-based CAD tool (demo) link (Csongor Kiss, Toby Shaw) - FARM 2016, Nara, Japan
- Generating elm data types using GHC Generics (lightning talk) - Haskell eXchange 2016, London, UK
I’ve given 3 guest lectures in Advanced Functional Programming using Haskell in the Department of Computing at Imperial College London.
- GADTs - November, 2017
- Monadic IO - November, 2017
- Lenses - December, 2017
Some of my more interesting projects
A Haskell library for deriving lenses and prisms using GHC8’s
PureScript safe printf (2017)
printf interface for PureScript showcasing a type-level parser
that uses my
ConsSymbol class solved by the compiler.
Type-level register machine (2016)
A type-level register machine, as a proof of concept for showing that Haskell’s type system is indeed Turing complete.
Type-level regex (2016)
Type-level implementation of a regular expression to nondeterministic finite automaton compiler, and matcher.
Haskell compiler (2015)
I wrote a compiler for a subset of Haskell (notably, no type classes), with some extensions (mixfix syntax by dynamically generating context-free grammars, like in Agda).
Doom on Raspberry Pi (2015)
Doom-like game engine running on a 1st generation Raspberry Pi, written in 100% pure ARM assembly, with no operating system. Written with a group of 4, in about 3 weeks.
My other projects can be found on my github
- Habito – 2017, London, UK
- GSA Capital – 2016, London, UK
- Netcraft – 2015, Bath, UK