Blog

2025

2020

2019

2018

At the end of 2018

As 2018 draws to a close, I wanted to share a couple of personal thoughts from the year: one related to success/failure and the other on resolutions, which I'll cover first. Following tradition, I often make several informal New Years' resolutions, usually involving health/fitness goals. My level of success in...
Read more →

Exam advice

Part of my job is to give advice to my undergraduate students about exam technique and preparing for exams. I was always quite nervous about exams 'back in the day', and I put a lot of effort into revising and planning. In retrospect, I think I enjoyed these times: I...
Read more →

2017

Scrap Your Reprinter

Back in 2013, Andrew Rice and I were doing some initial groundwork on how to build tools to help scientists write better code (e.g., with the help of refactoring tools and verification tools). We talked to a lot of scientists who wrote Fortran almost exclusively, so we started creating infrastructure...
Read more →

FSCD day 4 - rough notes

(Blog posts for Day 1, Day 2, Day 3, Day 4 (half day)) I decided to take electronic notes at ICFP and FSCD (colocated) this year, and following the example of various people who put their conference notes online (which I've found useful), I thought I would attempt the same....
Read more →

ICFP / FSCD day 3 - rough notes

(Blog posts for Day 1, Day 2, Day 3, Day 4 (half day)) I decided to take electronic notes at ICFP and FSCD (colocated) this year, and following the example of various people who put their conference notes online (which I've found useful), I thought I would attempt the same....
Read more →

ICFP / FSCD day 2 - rough notes

(Blog posts for Day 1, Day 2, Day 3, Day 4 (half day)) I decided to take electronic notes at ICFP and FSCD (colocated) this year, and following the example of various people who put their conference notes online (which I've found useful), I thought I would attempt the same....
Read more →

ICFP / FSCD day 1 - rough notes

(Blog posts for Day 1, Day 2, Day 3, Day 4 (half day)) I decided to take electronic notes at ICFP and FSCD (colocated) this year, and following the example of various people who put their conference notes online (which I've found useful), I thought I would attempt the same....
Read more →

2015

An afternoon of DTT/theorem provers: Agda and Coq

Note from 23rd August, 2017 I found this draft blog post lying around, written in the spring of 2015 while I was working at Imperial College London as a Research Associate in the Mobility Reading Group with Nobuko Yoshida. This was the fruit of a discussion with Tiago Cogumbreiro where...
Read more →

2014

Rearranging equations using a zipper

Whilst experimenting with some ideas for a project, I realised I needed a quick piece of code to rearrange equations (defined in terms of +, *, -, and /) in AST form, e.g., given an AST for the equation x = y + 3, rearrange to get y = x...
Read more →

2013

2012

2011

Subcategories & 'Exofunctors' in Haskell

In my previous post I discussed the new constraint kinds extension to GHC, which provides a way to get type-indexed constraint families in GHC/Haskell. The extension provides some very useful expressivity. In this post I'm going to explain a possible use of the extension. In Haskell the Functor class is...
Read more →

Constraint kinds in Haskell, finally bringing us constraint families

Back in 2009 Tom Schrijvers and I wrote a paper entitled Haskell Type Constraints Unleashed [1] which appeared at FLOPS 2010 in April. In the paper we fleshed out the idea of adding constraint synyonyms and constraint families to GHC/Haskell, building upon various existing proposals for class families/indexed constraints. The...
Read more →

2009

Paper: Haskell Type Constraints Unleashed

Tom Schrijvers and I have a new paper describing extensions to Haskell's type-constraint term language, which considerably increases its flexibility. These extensions are particularly useful when writing polymorphic EDSLs in Haskell, thus expanding Haskell's capacity for embedding DSLs. Abstract: The popular Glasgow Haskell Compiler extends the Haskell 98 type system...
Read more →

Talk: @BCTCS'09 - Lucian: Dataflow and Object Orientation

Slides from my BCTCS talk entitled Lucian: Dataflow and Object Orientation: BCTCS '09 was held at Warwick University- the university that I studied for my undergraduate degree at. I enjoyed the conference particularly, as I got to spend time with Steve Matthews and Sara Kalvala (my undergraduate project supervisors from...
Read more →

The Koch Snowflake

This post has been imported from my old blog. I mentioned a couple of weeks ago I was going to write a post about a certain fractal. Now I have finally gotten round to writing something it has come at a very appropriate time as Britain has seen an unusual...
Read more →