Haskell Type Inferrer for Lambda Calculus