| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Agda.TypeChecking.CheckInternal
Description
A bidirectional type checker for internal syntax.
Performs checking on unreduced terms. With the exception that projection-like function applications have to be reduced since they break bidirectionality.
Synopsis
- checkType :: Type -> TCM ()
- infer :: Term -> TCM Type
- inferSpine :: Action -> Type -> (Elims -> Term) -> Elims -> TCM (Type, Elims)
- class CheckInternal a where
- checkInternal' :: Action -> a -> Comparison -> TypeOf a -> TCM a
- checkInternal :: a -> Comparison -> TypeOf a -> TCM ()
- inferInternal' :: Action -> a -> TCM a
- inferInternal :: a -> TCM ()
- data Action = Action {}
- defaultAction :: Action
- eraseUnusedAction :: Action
Documentation
inferSpine :: Action -> Type -> (Elims -> Term) -> Elims -> TCM (Type, Elims) Source #
inferSpine action t hd es checks that spine es eliminates
value hd [] of type t and returns the remaining type
(target of elimination) and the transformed eliminations.
class CheckInternal a where Source #
Minimal complete definition
Methods
checkInternal' :: Action -> a -> Comparison -> TypeOf a -> TCM a Source #
checkInternal :: a -> Comparison -> TypeOf a -> TCM () Source #
inferInternal' :: Action -> a -> TCM a Source #
inferInternal :: a -> TCM () Source #
Instances
checkInternal traverses the whole Term, and we can use this
traversal to modify the term.
Constructors
| Action | |
Fields
| |
defaultAction :: Action Source #
The default action is to not change the Term at all.