| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Embedded.Imperative.CMD
Description
Synopsis
- data Ref a
- data RefCMD fs a where
- NewRef :: pred a => String -> RefCMD (Param3 prog exp pred) (Ref a)
- InitRef :: pred a => String -> exp a -> RefCMD (Param3 prog exp pred) (Ref a)
- GetRef :: pred a => Ref a -> RefCMD (Param3 prog exp pred) (Val a)
- SetRef :: pred a => Ref a -> exp a -> RefCMD (Param3 prog exp pred) ()
- UnsafeFreezeRef :: pred a => Ref a -> RefCMD (Param3 prog exp pred) (Val a)
- data Arr i a
- data IArr i a
- data ArrCMD fs a where
- NewArr :: (pred a, pred i, Integral i, Ix i) => String -> exp i -> ArrCMD (Param3 prog exp pred) (Arr i a)
- ConstArr :: (pred a, pred i, Integral i, Ix i) => String -> [a] -> ArrCMD (Param3 prog exp pred) (Arr i a)
- GetArr :: (pred a, pred i, Integral i, Ix i) => Arr i a -> exp i -> ArrCMD (Param3 prog exp pred) (Val a)
- SetArr :: (pred a, pred i, Integral i, Ix i) => Arr i a -> exp i -> exp a -> ArrCMD (Param3 prog exp pred) ()
- CopyArr :: (pred a, pred i, Integral i, Ix i) => (Arr i a, exp i) -> (Arr i a, exp i) -> exp i -> ArrCMD (Param3 prog exp pred) ()
- UnsafeFreezeArr :: (pred a, pred i, Integral i, Ix i) => Arr i a -> ArrCMD (Param3 prog exp pred) (IArr i a)
- UnsafeThawArr :: (pred a, pred i, Integral i, Ix i) => IArr i a -> ArrCMD (Param3 prog exp pred) (Arr i a)
- data Border i
- borderVal :: Border i -> i
- borderIncl :: Border i -> Bool
- type IxRange i = (i, Int, Border i)
- data ControlCMD fs a where
- If :: exp Bool -> prog () -> prog () -> ControlCMD (Param3 prog exp pred) ()
- While :: prog (exp Bool) -> prog () -> ControlCMD (Param3 prog exp pred) ()
- For :: (pred i, Integral i) => IxRange (exp i) -> (Val i -> prog ()) -> ControlCMD (Param3 prog exp pred) ()
- Break :: ControlCMD (Param3 prog exp pred) ()
- Assert :: exp Bool -> String -> ControlCMD (Param3 prog exp pred) ()
- Hint :: pred a => exp a -> ControlCMD (Param3 prog exp pred) ()
- Comment :: String -> ControlCMD (Param3 prog exp pred) ()
- class ToIdent a => IsPointer a where
- runSwapPtr :: a -> a -> IO ()
- data PtrCMD fs a where
- data Handle
- stdin :: Handle
- stdout :: Handle
- data PrintfArg exp pred where
- mapPrintfArg :: (forall a. pred a => exp1 a -> exp2 a) -> PrintfArg exp1 pred -> PrintfArg exp2 pred
- mapPrintfArgM :: Monad m => (forall a. pred a => exp1 a -> m (exp2 a)) -> PrintfArg exp1 pred -> m (PrintfArg exp2 pred)
- class (Typeable a, Read a, PrintfArg a) => Formattable a where
- formatSpecPrint :: Proxy a -> String
- formatSpecScan :: Proxy a -> String
- data FileCMD fs a where
- FOpen :: FilePath -> IOMode -> FileCMD (Param3 prog exp pred) Handle
- FClose :: Handle -> FileCMD (Param3 prog exp pred) ()
- FEof :: Handle -> FileCMD (Param3 prog exp pred) (Val Bool)
- FPrintf :: Handle -> String -> [PrintfArg exp pred] -> FileCMD (Param3 prog exp pred) ()
- FGet :: (pred a, Formattable a) => Handle -> FileCMD (Param3 prog exp pred) (Val a)
- newtype Ptr (a :: *) = PtrComp {}
- data Object = Object {}
- class Arg arg pred where
- data FunArg exp pred where
- mapFunArg :: (forall a. exp1 a -> exp2 a) -> FunArg exp1 pred -> FunArg exp2 pred
- mapFunArgM :: Monad m => (forall a. exp1 a -> m (exp2 a)) -> FunArg exp1 pred -> m (FunArg exp2 pred)
- class ToIdent obj => Assignable obj
- data C_CMD fs a where
- NewCArr :: (pred a, pred i, Integral i, Ix i) => String -> Maybe i -> exp i -> C_CMD (Param3 prog exp pred) (Arr i a)
- ConstCArr :: (pred a, pred i, Integral i, Ix i) => String -> Maybe i -> [a] -> C_CMD (Param3 prog exp pred) (Arr i a)
- NewPtr :: pred a => String -> C_CMD (Param3 prog exp pred) (Ptr a)
- PtrToArr :: Ptr a -> C_CMD (Param3 prog exp pred) (Arr i a)
- NewObject :: String -> String -> Bool -> C_CMD (Param3 prog exp pred) Object
- AddInclude :: String -> C_CMD (Param3 prog exp pred) ()
- AddDefinition :: Definition -> C_CMD (Param3 prog exp pred) ()
- AddExternFun :: pred res => String -> proxy res -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) ()
- AddExternProc :: String -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) ()
- CallFun :: pred a => String -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) (Val a)
- CallProc :: Assignable obj => Maybe obj -> String -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) ()
- InModule :: String -> prog () -> C_CMD (Param3 prog exp pred) ()
References
Mutable reference
data RefCMD fs a where Source #
Commands for mutable references
Constructors
| NewRef :: pred a => String -> RefCMD (Param3 prog exp pred) (Ref a) | |
| InitRef :: pred a => String -> exp a -> RefCMD (Param3 prog exp pred) (Ref a) | |
| GetRef :: pred a => Ref a -> RefCMD (Param3 prog exp pred) (Val a) | |
| SetRef :: pred a => Ref a -> exp a -> RefCMD (Param3 prog exp pred) () | |
| UnsafeFreezeRef :: pred a => Ref a -> RefCMD (Param3 prog exp pred) (Val a) |
Instances
Arrays
Mutable array
Immutable array
data ArrCMD fs a where Source #
Commands for mutable arrays
Constructors
| NewArr :: (pred a, pred i, Integral i, Ix i) => String -> exp i -> ArrCMD (Param3 prog exp pred) (Arr i a) | |
| ConstArr :: (pred a, pred i, Integral i, Ix i) => String -> [a] -> ArrCMD (Param3 prog exp pred) (Arr i a) | |
| GetArr :: (pred a, pred i, Integral i, Ix i) => Arr i a -> exp i -> ArrCMD (Param3 prog exp pred) (Val a) | |
| SetArr :: (pred a, pred i, Integral i, Ix i) => Arr i a -> exp i -> exp a -> ArrCMD (Param3 prog exp pred) () | |
| CopyArr :: (pred a, pred i, Integral i, Ix i) => (Arr i a, exp i) -> (Arr i a, exp i) -> exp i -> ArrCMD (Param3 prog exp pred) () | |
| UnsafeFreezeArr :: (pred a, pred i, Integral i, Ix i) => Arr i a -> ArrCMD (Param3 prog exp pred) (IArr i a) | |
| UnsafeThawArr :: (pred a, pred i, Integral i, Ix i) => IArr i a -> ArrCMD (Param3 prog exp pred) (Arr i a) |
Instances
Control flow
Instances
| Functor Border Source # | |
| Foldable Border Source # | |
Defined in Language.Embedded.Imperative.CMD Methods fold :: Monoid m => Border m -> m # foldMap :: Monoid m => (a -> m) -> Border a -> m # foldMap' :: Monoid m => (a -> m) -> Border a -> m # foldr :: (a -> b -> b) -> b -> Border a -> b # foldr' :: (a -> b -> b) -> b -> Border a -> b # foldl :: (b -> a -> b) -> b -> Border a -> b # foldl' :: (b -> a -> b) -> b -> Border a -> b # foldr1 :: (a -> a -> a) -> Border a -> a # foldl1 :: (a -> a -> a) -> Border a -> a # elem :: Eq a => a -> Border a -> Bool # maximum :: Ord a => Border a -> a # minimum :: Ord a => Border a -> a # | |
| Traversable Border Source # | |
| Eq i => Eq (Border i) Source # | |
| Num i => Num (Border i) Source # |
|
Defined in Language.Embedded.Imperative.CMD | |
| Show i => Show (Border i) Source # | |
borderIncl :: Border i -> Bool Source #
type IxRange i = (i, Int, Border i) Source #
Index range
(lo,step,hi)
lo gives the start index; step gives the step length; hi gives the stop
index which may be inclusive or exclusive.
data ControlCMD fs a where Source #
Constructors
| If :: exp Bool -> prog () -> prog () -> ControlCMD (Param3 prog exp pred) () | |
| While :: prog (exp Bool) -> prog () -> ControlCMD (Param3 prog exp pred) () | |
| For :: (pred i, Integral i) => IxRange (exp i) -> (Val i -> prog ()) -> ControlCMD (Param3 prog exp pred) () | |
| Break :: ControlCMD (Param3 prog exp pred) () | |
| Assert :: exp Bool -> String -> ControlCMD (Param3 prog exp pred) () | |
| Hint :: pred a => exp a -> ControlCMD (Param3 prog exp pred) () | |
| Comment :: String -> ControlCMD (Param3 prog exp pred) () |
Instances
Generic pointer manipulation
class ToIdent a => IsPointer a where Source #
Types that are represented as a pointers in C
Methods
runSwapPtr :: a -> a -> IO () Source #
data PtrCMD fs a where Source #
Constructors
| SwapPtr :: Ptr a -> Ptr a -> PtrCMD (Param3 prog exp pred) () | |
| SwapArr :: (Typeable i, Typeable a, pred i, pred a) => Arr i a -> Arr i a -> PtrCMD (Param3 prog exp pred) () |
Instances
File handling
File handle
Constructors
| HandleComp VarId | |
| HandleRun Handle |
mapPrintfArg :: (forall a. pred a => exp1 a -> exp2 a) -> PrintfArg exp1 pred -> PrintfArg exp2 pred Source #
mapPrintfArgM :: Monad m => (forall a. pred a => exp1 a -> m (exp2 a)) -> PrintfArg exp1 pred -> m (PrintfArg exp2 pred) Source #
class (Typeable a, Read a, PrintfArg a) => Formattable a where Source #
Values that can be printed/scanned using printf/scanf
Minimal complete definition
Methods
formatSpecPrint :: Proxy a -> String Source #
Format specifier for printf
formatSpecScan :: Proxy a -> String Source #
Format specifier for scanf
Instances
| Formattable Double Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Float Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Int Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Int8 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Int16 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Int32 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Int64 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Word Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Word8 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Word16 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Word32 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Formattable Word64 Source # | |
Defined in Language.Embedded.Imperative.CMD | |
data FileCMD fs a where Source #
Constructors
| FOpen :: FilePath -> IOMode -> FileCMD (Param3 prog exp pred) Handle | |
| FClose :: Handle -> FileCMD (Param3 prog exp pred) () | |
| FEof :: Handle -> FileCMD (Param3 prog exp pred) (Val Bool) | |
| FPrintf :: Handle -> String -> [PrintfArg exp pred] -> FileCMD (Param3 prog exp pred) () | |
| FGet :: (pred a, Formattable a) => Handle -> FileCMD (Param3 prog exp pred) (Val a) |
Instances
C-specific commands
Pointer
Abstract object
class Arg arg pred where Source #
Instances
| Arg (ObjArg :: k -> Type) (pred :: k) Source # | |
| Arg (StrArg :: k -> Type) (pred :: k) Source # | |
| Arg (ConstArg :: k -> Type) (pred :: k) Source # | |
| CompTypeClass ct => Arg PtrArg (ct :: Type -> Constraint) Source # | |
| CompTypeClass ct => Arg IArrArg (ct :: Type -> Constraint) Source # | |
| CompTypeClass ct => Arg ArrArg (ct :: Type -> Constraint) Source # | |
| CompTypeClass ct => Arg RefArg (ct :: Type -> Constraint) Source # | |
| (CompExp exp, CompTypeClass ct) => Arg (FunArg exp :: (Type -> Constraint) -> Type) (ct :: Type -> Constraint) Source # | |
mapFunArgM :: Monad m => (forall a. exp1 a -> m (exp2 a)) -> FunArg exp1 pred -> m (FunArg exp2 pred) Source #
class ToIdent obj => Assignable obj Source #
Instances
| Assignable Object Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Assignable (Ptr a) Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Assignable (Ref a) Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Assignable (IArr i a) Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| Assignable (Arr i a) Source # | |
Defined in Language.Embedded.Imperative.CMD | |
data C_CMD fs a where Source #
Constructors
| NewCArr :: (pred a, pred i, Integral i, Ix i) => String -> Maybe i -> exp i -> C_CMD (Param3 prog exp pred) (Arr i a) | |
| ConstCArr :: (pred a, pred i, Integral i, Ix i) => String -> Maybe i -> [a] -> C_CMD (Param3 prog exp pred) (Arr i a) | |
| NewPtr :: pred a => String -> C_CMD (Param3 prog exp pred) (Ptr a) | |
| PtrToArr :: Ptr a -> C_CMD (Param3 prog exp pred) (Arr i a) | |
| NewObject :: String -> String -> Bool -> C_CMD (Param3 prog exp pred) Object | |
| AddInclude :: String -> C_CMD (Param3 prog exp pred) () | |
| AddDefinition :: Definition -> C_CMD (Param3 prog exp pred) () | |
| AddExternFun :: pred res => String -> proxy res -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) () | |
| AddExternProc :: String -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) () | |
| CallFun :: pred a => String -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) (Val a) | |
| CallProc :: Assignable obj => Maybe obj -> String -> [FunArg exp pred] -> C_CMD (Param3 prog exp pred) () | |
| InModule :: String -> prog () -> C_CMD (Param3 prog exp pred) () |
Instances
| C_CMD :<: instr => Reexpressible C_CMD (instr :: (Type -> Type, (Type -> Type, (Type -> Constraint, Type))) -> Type -> Type) env Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| InterpBi C_CMD IO (Param1 pred :: (Type -> Constraint, Type)) Source # | |
| (CompExp exp, CompTypeClass ct) => Interp C_CMD CGen (Param2 exp ct :: (Type -> Type, (Type -> Constraint, Type))) Source # | |
| HFunctor C_CMD Source # | |
Defined in Language.Embedded.Imperative.CMD | |
| HBifunctor C_CMD Source # | |
| DryInterp C_CMD Source # | |
Defined in Language.Embedded.Imperative.CMD Methods dryInterp :: forall m (fs :: k) a. MonadSupply m => C_CMD '(m, fs) a -> m a Source # | |