Stuff I made
A documentation hosting and code search service for PureScript libraries. Originally my Google Summer of Code 2015 project, it has continued to evolve since then, and has now received contributions from quite a few other PureScripters. It is now an indispensable tool for both beginner and more advanced PureScript practitioners.
A guide to the PureScript numeric hierarchy
A text I wrote in order to explain some of the mathematics behind the
PureScript numeric hierarchy — that is, the hierarchy consisting of the
Field, etc. The mathematical concepts of
rings and fields come from abstract algebra and are usually not encountered
until undergraduate level, which means that PureScript users without this
background knowledge might find them a little arcane at first. I wrote this
text to share some of my knowledge and hopefully demystify these ideas, since
they are the basis of some of the most commonly used
Prelude type classes.
A multiplayer version of the classic Pacman game. The server and the client were both written in PureScript. To play, you’ll need to find at least one other person to play against; just send them to the same URL.
An efficient, general-purpose sequence type for PureScript. This library offers a data structure designed for use in PureScript code, in order to take advantage of immutability: giving benefits related to both time complexity of operations and memory churn.
A simple Solitaire game, writen in PureScript, a Haskell-like language which compiles to PureScript.
Redmine release notes plugin
A plugin for the open-source bug tracking and project management system, Redmine.
King of the Network
The winning entry to the Edinburgh University GameDevSoc Game Jam 2013. The theme was ‘networks’. We used GameMaker, so there’s only an EXE file. It seems to work well under Wine though.
Down the Rabbit Hole
Won joint 1st place in the Edinburgh University Functional Programming Competition in 2013. It is a zoom sequence of the Mandelbrot set, written in Haskell.
A program for composing chiptune music. Reads a text file containing a description of a track in a purpose-built domain specific language, and turns it into music.