- typeCheck :: (Compressable a, TypeCheckable a b) => a -> TypeCheckMonad a
- typeCheckExpect :: (Compressable a, TypeCheckable a Type) => Type -> a -> TypeCheckMonad a
- typeOfExp :: TCExp -> TypeCheckMonad Type
- dependenciesOfExp :: TCExp -> TypeCheckMonad [Name]
- initTypeChecker :: IO TypeInferenceState
- type TypeCheckMonad = StateT TypeInferenceState IO
- data TypeInferenceState
- runTypeChecker :: TypeInferenceState -> TypeCheckMonad a -> IO a
- runFromStateToState :: TypeInferenceState -> TypeCheckMonad a -> IO (a, [ErrorMessage], TypeInferenceState)
Documentation
typeCheck :: (Compressable a, TypeCheckable a b) => a -> TypeCheckMonad aSource
typeCheckExpect :: (Compressable a, TypeCheckable a Type) => Type -> a -> TypeCheckMonad aSource
dependenciesOfExp :: TCExp -> TypeCheckMonad [Name]Source
Returns the list of names that this expression depends on
data TypeInferenceState Source
runTypeChecker :: TypeInferenceState -> TypeCheckMonad a -> IO aSource
Runs the typechecker, starting from state st
. If any errors are
encountered then a SourceError
will be thrown with the relevent
error messages.
runFromStateToState :: TypeInferenceState -> TypeCheckMonad a -> IO (a, [ErrorMessage], TypeInferenceState)Source