original demo source (Haskell)
compiled demo (javascript)