module CSPM.TypeChecker.BuiltInFunctions(
injectBuiltInFunctions
) where
import Control.Monad
import CSPM.DataStructures.Names
import CSPM.DataStructures.Types
import CSPM.Prelude
import CSPM.TypeChecker.Monad hiding (isDeprecated, isTypeUnsafe)
injectBuiltInFunctions :: TypeCheckMonad ()
injectBuiltInFunctions =
mapM_ (\ b -> do
setType (name b) (typeScheme b)
when (isDeprecated b) $
markAsDeprecated (name b) (deprecatedReplacement b)
when (isTypeUnsafe b) $
markTypeAsUnsafe (name b)) (builtins True)