A haskell library for type inference