Safe Haskell | None |
---|---|
Language | Haskell98 |
- type TValue r a = CodeGenFunction r (Value a)
- (%==) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a)
- (%/=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a)
- (%<) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a)
- (%<=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a)
- (%>) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a)
- (%>=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a)
- (%&&) :: TValue r Bool -> TValue r Bool -> TValue r Bool
- (%||) :: TValue r Bool -> TValue r Bool -> TValue r Bool
- (?) :: IsFirstClass a => TValue r Bool -> (TValue r a, TValue r a) -> TValue r a
- (??) :: (IsFirstClass a, CmpRet a) => TValue r (CmpResult a) -> (TValue r a, TValue r a) -> TValue r a
- retrn :: Ret (Value a) r => TValue r a -> CodeGenFunction r ()
- set :: TValue r a -> CodeGenFunction r (TValue r a)
- class ArithFunction r z a b | a -> b r z, b r z -> a
- arithFunction :: ArithFunction r z a b => a -> b
- class ToArithFunction r a b | a r -> b, b -> a r
- toArithFunction :: ToArithFunction r f g => Function f -> g
- recursiveFunction :: (IsFunction f, FunctionArgs f, code ~ FunctionCodeGen f, ArithFunction r1 z arith code, ToArithFunction r0 f g) => (g -> arith) -> CodeGenModule (Function f)
- class CallIntrinsic a
Documentation
type TValue r a = CodeGenFunction r (Value a) Source #
Synonym for CodeGenFunction r (Value a)
.
(%==) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #
Comparison functions.
(%/=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #
Comparison functions.
(%<) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #
Comparison functions.
(%<=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #
Comparison functions.
(%>) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #
Comparison functions.
(%>=) :: CmpRet a => TValue r a -> TValue r a -> TValue r (CmpResult a) infix 4 Source #
Comparison functions.
(?) :: IsFirstClass a => TValue r Bool -> (TValue r a, TValue r a) -> TValue r a infix 0 Source #
Conditional, returns first element of the pair when condition is true, otherwise second.
(??) :: (IsFirstClass a, CmpRet a) => TValue r (CmpResult a) -> (TValue r a, TValue r a) -> TValue r a infix 0 Source #
retrn :: Ret (Value a) r => TValue r a -> CodeGenFunction r () Source #
Return a value from an arithFunction
.
class ArithFunction r z a b | a -> b r z, b r z -> a Source #
arithFunction'
ArithFunction r z b0 b1 => ArithFunction r z (CodeGenFunction r a -> b0) (a -> b1) Source # | |
Ret a r => ArithFunction r a (CodeGenFunction r a) (CodeGenFunction r ()) Source # | |
arithFunction :: ArithFunction r z a b => a -> b Source #
Unlift a function with TValue
to have Value
arguments.
class ToArithFunction r a b | a r -> b, b -> a r Source #
toArithFunction'
ToArithFunction r (IO b) (CodeGenFunction r (Value b)) Source # | |
ToArithFunction r b0 b1 => ToArithFunction r (a -> b0) (CodeGenFunction r (Value a) -> b1) Source # | |
toArithFunction :: ToArithFunction r f g => Function f -> g Source #
Lift a function from having Value
arguments to having TValue
arguments.
recursiveFunction :: (IsFunction f, FunctionArgs f, code ~ FunctionCodeGen f, ArithFunction r1 z arith code, ToArithFunction r0 f g) => (g -> arith) -> CodeGenModule (Function f) Source #
Define a recursive arithFunction
, gets passed itself as the first argument.
class CallIntrinsic a Source #
callIntrinsic1', callIntrinsic2'
CallIntrinsic Double Source # | |
CallIntrinsic Float Source # | |
(Positive n, IsPrimitive a, CallIntrinsic a) => CallIntrinsic (Vector n a) Source # | |
Orphan instances
(IsArithmetic a, CmpRet a, Num a, IsConst a) => Enum (TValue r a) Source # | |
Eq (TValue r a) Source # | |
(CmpRet a, CallIntrinsic a, Floating a, IsConst a, IsFloating a) => Floating (TValue r a) Source # | |
(CmpRet a, Fractional a, IsConst a, IsFloating a) => Fractional (TValue r a) Source # | |
(CmpRet a, Num a, IsConst a, IsInteger a) => Integral (TValue r a) Source # | |
(IsArithmetic a, CmpRet a, Num a, IsConst a) => Num (TValue r a) Source # | |
Ord (TValue r a) Source # | |
(IsArithmetic a, CmpRet a, Num a, IsConst a) => Real (TValue r a) Source # | |
(CmpRet a, CallIntrinsic a, RealFloat a, IsConst a, IsFloating a) => RealFloat (TValue r a) Source # | |
(CmpRet a, Fractional a, IsConst a, IsFloating a) => RealFrac (TValue r a) Source # | |