ForSyDe-3.1.1: ForSyDe's Haskell-embedded Domain Specific Language.

Portabilityportable
Stabilityexperimental
Maintainerforsyde-dev@ict.kth.se

ForSyDe.Process

Description

Publicly usable functions to create primitive processes. (Reexports ForSyDe.Process.SynchProc)

Synopsis

Documentation

data ProcFun a Source

A Process Function

newProcFun :: Q [Dec] -> ExpQSource

Template Haskell constructor for ProcFun, here is an example on how to use it

  plus1Fun :: ProcFun (Int -> Int)
  plus1Fun = $(newProcFun [d| plus1 :: Int -> Int
                              plus1 n = n + 1     |])

defArgVal :: (Lift a, ProcType a) => ProcFun (a -> b) -> a -> ProcFun bSource

Sets a default value for an argument of the process function

defArgPF :: ProcFun (a -> b) -> ProcFun a -> ProcFun bSource

Sets a default value for an argument of the process function when the argument is a process function itself

class (Data a, Lift a) => ProcType a Source

Class used to constrain the arguments (values and ProcFuns) taken by process constructors

Instances

(Lift a, Data a) => ProcType a 
ProcType a => ProcType (AbstExt a) 
(ProcType o[a7oeD], ProcType o[a7oeE], Data o[a7oeD], Data o[a7oeE], Lift o[a7oeD], Lift o[a7oeE]) => ProcType (o[a7oeD], o[a7oeE]) 
(Typeable s, Nat s, ProcType a) => ProcType (FSVec s a) 
(ProcType o[a7oeF], ProcType o[a7oeG], ProcType o[a7oeH], Data o[a7oeF], Data o[a7oeG], Data o[a7oeH], Lift o[a7oeF], Lift o[a7oeG], Lift o[a7oeH]) => ProcType (o[a7oeF], o[a7oeG], o[a7oeH]) 
(ProcType o[a7oeI], ProcType o[a7oeJ], ProcType o[a7oeK], ProcType o[a7oeL], Data o[a7oeI], Data o[a7oeJ], Data o[a7oeK], Data o[a7oeL], Lift o[a7oeI], Lift o[a7oeJ], Lift o[a7oeK], Lift o[a7oeL]) => ProcType (o[a7oeI], o[a7oeJ], o[a7oeK], o[a7oeL]) 
(ProcType o[a7oeM], ProcType o[a7oeN], ProcType o[a7oeO], ProcType o[a7oeP], ProcType o[a7oeQ], Data o[a7oeM], Data o[a7oeN], Data o[a7oeO], Data o[a7oeP], Data o[a7oeQ], Lift o[a7oeM], Lift o[a7oeN], Lift o[a7oeO], Lift o[a7oeP], Lift o[a7oeQ]) => ProcType (o[a7oeM], o[a7oeN], o[a7oeO], o[a7oeP], o[a7oeQ]) 
(ProcType o[a7oeR], ProcType o[a7oeS], ProcType o[a7oeT], ProcType o[a7oeU], ProcType o[a7oeV], ProcType o[a7oeW], Data o[a7oeR], Data o[a7oeS], Data o[a7oeT], Data o[a7oeU], Data o[a7oeV], Data o[a7oeW], Lift o[a7oeR], Lift o[a7oeS], Lift o[a7oeT], Lift o[a7oeU], Lift o[a7oeV], Lift o[a7oeW]) => ProcType (o[a7oeR], o[a7oeS], o[a7oeT], o[a7oeU], o[a7oeV], o[a7oeW]) 
(ProcType o[a7oeX], ProcType o[a7oeY], ProcType o[a7oeZ], ProcType o[a7of0], ProcType o[a7of1], ProcType o[a7of2], ProcType o[a7of3], Data o[a7oeX], Data o[a7oeY], Data o[a7oeZ], Data o[a7of0], Data o[a7of1], Data o[a7of2], Data o[a7of3], Lift o[a7oeX], Lift o[a7oeY], Lift o[a7oeZ], Lift o[a7of0], Lift o[a7of1], Lift o[a7of2], Lift o[a7of3]) => ProcType (o[a7oeX], o[a7oeY], o[a7oeZ], o[a7of0], o[a7of1], o[a7of2], o[a7of3])