Safe Haskell | None |
---|---|
Language | Haskell98 |
- tVoid :: Type Name
- tBool :: Type Name
- tNat :: Type Name
- tInt :: Type Name
- tSize :: Type Name
- tWord :: Int -> Type Name
- tFloat :: Int -> Type Name
- tAddr :: Type Name
- tPtr :: Region Name -> Type Name -> Type Name
- takeTPtr :: Type Name -> Maybe (Region Name, Type Name)
- tTextLit :: Type Name
- tTag :: Type Name
- tObj :: Type Name
- xBool :: a -> Bool -> Exp a Name
- xNat :: a -> Integer -> Exp a Name
- xInt :: a -> Integer -> Exp a Name
- xSize :: a -> Integer -> Exp a Name
- xWord :: a -> Integer -> Int -> Exp a Name
- xFloat :: a -> Double -> Int -> Exp a Name
- xTag :: a -> Integer -> Exp a Name
- xTextLit :: a -> Text -> Exp a Name
- xNeg :: a -> Type Name -> Exp a Name -> Exp a Name
- xAdd :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xSub :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xMul :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xDiv :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xMod :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xRem :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xEq :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xNeq :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xLt :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xGt :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xLe :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xGe :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xAnd :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xOr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xShl :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xShr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xBAnd :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xBOr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xBXOr :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xConvert :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name
- xPromote :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name
- xTruncate :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name
- xFail :: a -> Type Name -> Exp a Name
- xReturn :: a -> Type Name -> Exp a Name -> Exp a Name
- xStoreSize :: a -> Type Name -> Exp a Name
- xStoreSize2 :: a -> Type Name -> Exp a Name
- xCreate :: a -> Exp a Name -> Exp a Name
- xRead :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xWrite :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xPeek :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name
- xPeekBounded :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xPoke :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xPokeBounded :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name
- xCastPtr :: a -> Type Name -> Type Name -> Type Name -> Exp a Name -> Exp a Name
Types
Values
Literals
Primitive arithmetic operators.
Primitive cast operators.
xConvert :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source
Convert a value to a similarly sized type.
xPromote :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source
Promote a value to a wider type.
xTruncate :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name Source
Truncate a value to a narrower type.
Primitive control operators.
Primitive store operators.
xStoreSize :: a -> Type Name -> Exp a Name Source
Take the number of bytes needed to store a value of a primitive type.
xStoreSize2 :: a -> Type Name -> Exp a Name Source
Log2 of the number of bytes needed to store a value of primitive type.
xRead :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source
Read a value from an address plus offset.
xWrite :: a -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source
Write a value to an address plus offset.
xPeek :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name Source
Peek a value from a buffer pointer plus offset.
xPeekBounded :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source
Peek a value from a buffer pointer plus offset.
xPoke :: a -> Type Name -> Type Name -> Exp a Name -> Exp a Name -> Exp a Name -> Exp a Name Source
Poke a value from a buffer pointer plus offset.