A compiler for a strongly typed, haskell-like functional language