Learnt Haskell types and still sane