imperative-edsl-0.7.1: Deep embedding of imperative programs with code generation

Safe HaskellNone
LanguageHaskell2010

Language.Embedded.Imperative.Args

Description

Various types of function arguments

Synopsis

Documentation

data RefArg pred where Source #

Reference argument

Constructors

RefArg :: pred a => Ref a -> RefArg pred 

Instances

CompTypeClass ct => Arg (* -> Constraint) RefArg ct Source # 

Methods

mkArg :: ct pred -> CGen Exp Source #

mkParam :: ct pred -> CGen Param Source #

data ArrArg pred where Source #

Mutable array argument

Constructors

ArrArg :: pred a => Arr i a -> ArrArg pred 

Instances

CompTypeClass ct => Arg (* -> Constraint) ArrArg ct Source # 

Methods

mkArg :: ct pred -> CGen Exp Source #

mkParam :: ct pred -> CGen Param Source #

data IArrArg pred where Source #

Immutable array argument

Constructors

IArrArg :: pred a => IArr i a -> IArrArg pred 

Instances

CompTypeClass ct => Arg (* -> Constraint) IArrArg ct Source # 

Methods

mkArg :: ct pred -> CGen Exp Source #

mkParam :: ct pred -> CGen Param Source #

data PtrArg pred where Source #

Pointer argument

Constructors

PtrArg :: pred a => Ptr a -> PtrArg pred 

Instances

CompTypeClass ct => Arg (* -> Constraint) PtrArg ct Source # 

Methods

mkArg :: ct pred -> CGen Exp Source #

mkParam :: ct pred -> CGen Param Source #

data ObjArg pred where Source #

Abstract object argument

Constructors

ObjArg :: Object -> ObjArg pred 

Instances

Arg k (ObjArg k) pred Source # 

Methods

mkArg :: pred pred -> CGen Exp Source #

mkParam :: pred pred -> CGen Param Source #

data StrArg pred where Source #

Constant string argument

Constructors

StrArg :: String -> StrArg pred 

Instances

Arg k (StrArg k) pred Source # 

Methods

mkArg :: pred pred -> CGen Exp Source #

mkParam :: pred pred -> CGen Param Source #

data ConstArg pred where Source #

Constructors

ConstArg :: {..} -> ConstArg pred 

Instances

Arg k (ConstArg k) pred Source # 

Methods

mkArg :: pred pred -> CGen Exp Source #

mkParam :: pred pred -> CGen Param Source #