first draft of a haskell one.