Safe Haskell | None |
---|---|
Language | Haskell2010 |
Generic pointer
Synopsis
- data Constancy
- class KnownConstancy (c :: Constancy)
- data Nullability
- data Pointer (n :: Nullability) (c :: Constancy) (s :: RefScope) (a :: Area *) = Pointer {
- getPointer :: Expr
- nullPtr :: IvoryArea a => Pointer Nullable c s a
- pointerCast :: forall (s :: RefScope) (a :: Area *). (PointerCast n1 c1 n2 c2, IvoryArea a) => Pointer n1 c1 s a -> Pointer n2 c2 s a
- pointerCastToConst :: (KnownNullability n, IvoryArea a) => Pointer n Mutable s a -> Pointer n Const s a
- pointerCastToNullable :: (KnownConstancy c, IvoryArea a) => Pointer Valid c s a -> Pointer Nullable c s a
- unsafePointerCast :: (KnownNullability n1, KnownNullability n2, KnownConstancy c1, KnownConstancy c2, IvoryArea a) => Pointer n1 c1 s a -> Pointer n2 c2 s a
- withRef :: (KnownConstancy c, IvoryArea a) => Pointer Nullable c s a -> (Pointer Valid c s a -> Ivory eff t) -> Ivory eff f -> Ivory eff ()
Documentation
class KnownConstancy (c :: Constancy) Source #
demoteConstancy
Instances
KnownConstancy Const Source # | |
Defined in Ivory.Language.Pointer demoteConstancy :: Proxy Const -> Constancy | |
KnownConstancy Mutable Source # | |
Defined in Ivory.Language.Pointer demoteConstancy :: Proxy Mutable -> Constancy |
data Nullability Source #
data Pointer (n :: Nullability) (c :: Constancy) (s :: RefScope) (a :: Area *) Source #
Instances
IvoryAddrOf ConstMemArea ConstRef Source # | |
Defined in Ivory.Language.MemArea | |
IvoryAddrOf MemArea Ref Source # | |
IvoryRef (Pointer Valid c) Source # | |
IvoryArea area => IvoryZeroVal (Ptr Global area) Source # | |
IvoryArea area => IvoryInit (Ptr Global area) Source # | |
(KnownNullability n, KnownConstancy c, IvoryArea a) => IvoryExpr (Pointer n c s a) Source # | |
(KnownNullability n, KnownConstancy c, IvoryArea a) => IvoryVar (Pointer n c s a) Source # | |
(KnownNullability n, KnownConstancy c, IvoryArea a) => IvoryType (Pointer n c s a) Source # | |
(KnownNullability n, KnownConstancy c, IvoryArea a) => IvoryEq (Pointer n c s a) Source # | |
(KnownConstancy c, IvoryArea a) => IvoryStore (Pointer Nullable c Global a) Source # | |
Defined in Ivory.Language.Ref |
pointerCast :: forall (s :: RefScope) (a :: Area *). (PointerCast n1 c1 n2 c2, IvoryArea a) => Pointer n1 c1 s a -> Pointer n2 c2 s a Source #
pointerCastToConst :: (KnownNullability n, IvoryArea a) => Pointer n Mutable s a -> Pointer n Const s a Source #
pointerCastToNullable :: (KnownConstancy c, IvoryArea a) => Pointer Valid c s a -> Pointer Nullable c s a Source #
unsafePointerCast :: (KnownNullability n1, KnownNullability n2, KnownConstancy c1, KnownConstancy c2, IvoryArea a) => Pointer n1 c1 s a -> Pointer n2 c2 s a Source #