A rewrite of da.gd using Haskell+Snap