ivory-0.1.0.6: Safe embedded C programming.

Safe HaskellNone
LanguageHaskell2010

Ivory.Language.IBool

Synopsis

Documentation

newtype IBool Source #

Constructors

IBool 

Fields

Instances

IvoryExpr IBool Source # 

Methods

wrapExpr :: Expr -> IBool Source #

IvoryVar IBool Source # 
IvoryType IBool Source # 
IvoryOrd IBool Source # 
IvoryEq IBool Source # 
IvoryStore IBool Source # 
Ensures IBool Source # 

Methods

ensures :: (WrapIvory m, IvoryVar r) => (r -> IBool) -> m r -> m r Source #

ensures_ :: WrapIvory m => IBool -> m () -> m () Source #

Requires IBool Source # 

Methods

requires :: (WrapIvory m, IvoryType r) => IBool -> m r -> m r Source #

CheckStored IBool Source # 

Methods

checkStored :: (IvoryVar a, IvoryRef ref, IvoryVar (ref s (Stored * a))) => ref s (Stored * a) -> (a -> IBool) -> Cond Source #

IvoryZeroVal IBool Source # 
IvoryInit IBool Source # 

Methods

ival :: IBool -> Init (Stored * IBool) Source #

SafeCast IBool IChar Source # 

Methods

safeCast :: IBool -> IChar Source #

SafeCast IBool Sint64 Source # 
SafeCast IBool Sint32 Source # 
SafeCast IBool Sint16 Source # 
SafeCast IBool Sint8 Source # 

Methods

safeCast :: IBool -> Sint8 Source #

SafeCast IBool Uint64 Source # 
SafeCast IBool Uint32 Source # 
SafeCast IBool Uint16 Source # 
SafeCast IBool Uint8 Source # 

Methods

safeCast :: IBool -> Uint8 Source #

SafeCast IBool IBool Source # 

Methods

safeCast :: IBool -> IBool Source #

SafeCast IBool IDouble Source # 
SafeCast IBool IFloat Source # 

ifte_ :: IBool -> Ivory eff a -> Ivory eff b -> Ivory eff () Source #

If-then-else.

(?) :: IvoryExpr a => IBool -> (a, a) -> a Source #

Conditional expressions.

boolOp :: forall a. IvoryVar a => (Type -> ExpOp) -> a -> a -> IBool Source #

class IvoryExpr a => IvoryEq a where Source #

Methods

(==?) :: a -> a -> IBool infix 4 Source #

(/=?) :: a -> a -> IBool infix 4 Source #

Instances

IvoryEq Sint64 Source # 
IvoryEq Sint32 Source # 
IvoryEq Sint16 Source # 
IvoryEq Sint8 Source # 
IvoryEq Uint64 Source # 
IvoryEq Uint32 Source # 
IvoryEq Uint16 Source # 
IvoryEq Uint8 Source # 
IvoryEq IBool Source # 
IvoryEq IDouble Source # 
IvoryEq IFloat Source # 
ANat n => IvoryEq (Ix n) Source # 

Methods

(==?) :: Ix n -> Ix n -> IBool Source #

(/=?) :: Ix n -> Ix n -> IBool Source #

IvoryRep (BitRep n) => IvoryEq (Bits n) Source # 

Methods

(==?) :: Bits n -> Bits n -> IBool Source #

(/=?) :: Bits n -> Bits n -> IBool Source #

(KnownNullability n, KnownConstancy c, IvoryArea a) => IvoryEq (Pointer n c s a) Source # 

Methods

(==?) :: Pointer n c s a -> Pointer n c s a -> IBool Source #

(/=?) :: Pointer n c s a -> Pointer n c s a -> IBool Source #

class IvoryEq a => IvoryOrd a where Source #

Methods

(>?) :: a -> a -> IBool infix 4 Source #

(>=?) :: a -> a -> IBool infix 4 Source #

(<?) :: a -> a -> IBool infix 4 Source #

(<=?) :: a -> a -> IBool infix 4 Source #

Instances

IvoryOrd Sint64 Source # 
IvoryOrd Sint32 Source # 
IvoryOrd Sint16 Source # 
IvoryOrd Sint8 Source # 
IvoryOrd Uint64 Source # 
IvoryOrd Uint32 Source # 
IvoryOrd Uint16 Source # 
IvoryOrd Uint8 Source # 
IvoryOrd IBool Source # 
IvoryOrd IDouble Source # 
IvoryOrd IFloat Source # 
ANat n => IvoryOrd (Ix n) Source # 

Methods

(>?) :: Ix n -> Ix n -> IBool Source #

(>=?) :: Ix n -> Ix n -> IBool Source #

(<?) :: Ix n -> Ix n -> IBool Source #

(<=?) :: Ix n -> Ix n -> IBool Source #

(.&&) :: IBool -> IBool -> IBool infixr 3 Source #

(.||) :: IBool -> IBool -> IBool infixr 2 Source #