ddc-core-0.4.3.1: Disciplined Disciple Compiler core language and type checker.

Safe HaskellSafe
LanguageHaskell98

DDC.Control.Check

Description

A simple exception monad.

Synopsis

Documentation

data CheckM s err a Source #

Checker monad maintains some state and manages errors during type checking.

Constructors

CheckM (s -> (s, Either err a)) 

Instances

Monad (CheckM s err) Source # 

Methods

(>>=) :: CheckM s err a -> (a -> CheckM s err b) -> CheckM s err b #

(>>) :: CheckM s err a -> CheckM s err b -> CheckM s err b #

return :: a -> CheckM s err a #

fail :: String -> CheckM s err a #

Functor (CheckM s err) Source # 

Methods

fmap :: (a -> b) -> CheckM s err a -> CheckM s err b #

(<$) :: a -> CheckM s err b -> CheckM s err a #

Applicative (CheckM s err) Source # 

Methods

pure :: a -> CheckM s err a #

(<*>) :: CheckM s err (a -> b) -> CheckM s err a -> CheckM s err b #

(*>) :: CheckM s err a -> CheckM s err b -> CheckM s err b #

(<*) :: CheckM s err a -> CheckM s err b -> CheckM s err a #

throw :: err -> CheckM s err a Source #

Throw a type error in the monad.

runCheck :: s -> CheckM s err a -> (s, Either err a) Source #

Run a checker computation, returning the result and new state.

evalCheck :: s -> CheckM s err a -> Either err a Source #

Run a checker computation, ignoreing the final state.

get :: CheckM s err s Source #

Get the state from the monad.

put :: s -> CheckM s err () Source #

Put a new state into the monad.