sketching core haskell types