| Safe Haskell | None |
|---|
C.Prims
- data CallConv
- data Safety
- = Safe
- | Unsafe
- | JhcContext
- newtype ExtType = ExtType PackedString
- newtype Requires = Requires (Set (CallConv, PackedString))
- data DotNetPrim
- primReqs :: Prim -> Requires
- data Prim
- = PrimPrim Atom
- | CConst { }
- | Func {
- primRequires :: Requires
- funcName :: !PackedString
- primArgTypes :: [ExtType]
- primRetType :: ExtType
- primRetArgs :: [ExtType]
- primSafety :: Safety
- | IFunc { }
- | AddrOf { }
- | Peek { }
- | Poke { }
- | PrimTypeInfo {
- primArgTy :: Ty
- primRetTy :: Ty
- primTypeInfo :: !PrimTypeInfo
- | PrimString !PackedString
- | PrimDotNet {
- primStatic :: !Bool
- primDotNet :: !DotNetPrim
- primIOLike :: !Bool
- primAssembly :: !PackedString
- primDotNetName :: !PackedString
- | Op { }
- data PrimTypeInfo
- primStaticTypeInfo :: Ty -> PrimTypeInfo -> Maybe Integer
- primIsCheap :: Prim -> Bool
- primIsConstant :: Prim -> Bool
- primEagerSafe :: Prim -> Bool
- primPrim :: ToAtom a => a -> Prim
- parseDotNetFFI :: Monad m => String -> m Prim
Documentation
Constructors
| Safe | |
| Unsafe | |
| JhcContext |
Constructors
| ExtType PackedString |
Constructors
| Requires (Set (CallConv, PackedString)) |
data DotNetPrim Source
Constructors
| DotNetField | |
| DotNetCtor | |
| DotNetMethod |
Constructors
| PrimPrim Atom | |
| CConst | |
Fields | |
| Func | |
Fields
| |
| IFunc | |
Fields
| |
| AddrOf | |
Fields | |
| Peek | |
| Poke | |
| PrimTypeInfo | |
Fields
| |
| PrimString !PackedString | |
| PrimDotNet | |
Fields
| |
| Op | |
data PrimTypeInfo Source
Constructors
| PrimSizeOf | |
| PrimMaxBound | |
| PrimMinBound | |
| PrimAlignmentOf | |
| PrimUMaxBound |
primStaticTypeInfo :: Ty -> PrimTypeInfo -> Maybe IntegerSource
primIsCheap :: Prim -> BoolSource
These primitives may safely be duplicated without affecting performance or correctness too adversly. either because they are cheap to begin with, or will be recombined in a later pass.
primIsConstant :: Prim -> BoolSource
whether a primitive represents a constant expression (assuming all its arguments are constant) TODO needs grin support
primEagerSafe :: Prim -> BoolSource
whether a primitive can be eagarly evaluated. TODO needs grin support
parseDotNetFFI :: Monad m => String -> m PrimSource