A type-preserving compiler in Haskell | Synapse