inferring types for miniHaskell except let and case