Agda-2.3.0: A dependently typed functional programming language and proof assistant

Agda.TypeChecking.Primitive

Contents

Description

Primitive functions, such as addition on builtin integers.

Synopsis

Documentation

constructorForm :: Term -> TCM TermSource

Rewrite a literal to constructor form if possible.

Primitive functions

newtype Str Source

Constructors

Str 

Fields

unStr :: String
 

newtype Nat Source

Constructors

Nat 

Fields

unNat :: Integer
 

newtype Lvl Source

Constructors

Lvl 

Fields

unLvl :: Integer
 

class PrimType a whereSource

Methods

primType :: a -> TCM TypeSource

Instances

buildList :: TCM ([Term] -> Term)Source

buildList A ts builds a list of type List A. Assumes that the terms ts all have type A.

redBind :: TCM (Reduced a a') -> (a -> b) -> (a' -> TCM (Reduced b b')) -> TCM (Reduced b b')Source

Conceptually: redBind m f k = either (return . Left . f) k =<< m

redReturn :: a -> TCM (Reduced a' a)Source

mkPrimFun4 :: (PrimType a, FromTerm a, ToTerm a, PrimType b, FromTerm b, ToTerm b, PrimType c, FromTerm c, ToTerm c, PrimType d, FromTerm d, PrimType e, ToTerm e) => (a -> b -> c -> d -> e) -> TCM PrimitiveImplSource

The actual primitive functions

type Op a = a -> a -> aSource

type Fun a = a -> aSource

type Rel a = a -> a -> BoolSource

type Pred a = a -> BoolSource

rebindPrimitive :: String -> TCM PrimFunSource

Rebind a primitive. Assumes everything is type correct. Used when importing a module with primitives.