Safe Haskell | None |
---|
DDC.Core.Eval.Compounds
Description
Utilities for constructing and destructing compound types and expressions.
- module DDC.Core.Compounds
- tPair :: Region Name -> Type Name -> Type Name -> Type Name
- tList :: Region Name -> Type Name -> Type Name
- wGlobal :: a -> Region Name -> Witness a Name
- wConst :: a -> Region Name -> Witness a Name
- wMutable :: a -> Region Name -> Witness a Name
- wDistinct :: a -> Int -> [Region Name] -> Witness a Name
- wLazy :: a -> Region Name -> Witness a Name
- wManifest :: a -> Region Name -> Witness a Name
- wcGlobal :: WiCon Name
- wcConst :: WiCon Name
- wcMutable :: WiCon Name
- wcDistinct :: Int -> WiCon Name
- wcLazy :: WiCon Name
- wcManifest :: WiCon Name
- isCapConW :: Witness a Name -> Bool
- takeMutableX :: Exp a Name -> Maybe Rgn
- isUnitX :: Exp a Name -> Bool
- takeHandleT :: Type Name -> Maybe Rgn
- takeHandleX :: Exp a Name -> Maybe Rgn
- xLoc :: Loc -> Type Name -> Exp () Name
- takeLocX :: Exp a Name -> Maybe Loc
- stripLocX :: Exp a Name -> Maybe Loc
- tInt :: Region Name -> Type Name
- tcInt :: TyCon Name
- dcInt :: Integer -> DaCon Name
- takeIntDC :: DaCon Name -> Maybe Integer
- takeIntX :: Exp a Name -> Maybe Integer
Documentation
module DDC.Core.Compounds
Types
tPair :: Region Name -> Type Name -> Type Name -> Type NameSource
Application of the Pair type constructor.
Witnesses
wcDistinct :: Int -> WiCon NameSource
Expressions
takeMutableX :: Exp a Name -> Maybe RgnSource
Take a witness of mutability from an expression.
Units
Region Handles
takeHandleT :: Type Name -> Maybe RgnSource
Take a region handle from a type.
takeHandleX :: Exp a Name -> Maybe RgnSource
Take a region handle from an expression.
Store Locations.
takeLocX :: Exp a Name -> Maybe LocSource
Take a store location from an expression.
We strip off forget
casts along the way
stripLocX :: Exp a Name -> Maybe LocSource
Take a store location from an expression, reaching under any forget
casts.