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




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



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


(Lift a, Data a) => ProcType a 
ProcType a => ProcType (AbstExt a) 
(ProcType o[a8dsR], ProcType o[a8dsS], Data o[a8dsR], Data o[a8dsS], Lift o[a8dsR], Lift o[a8dsS]) => ProcType (o[a8dsR], o[a8dsS]) 
(Typeable s, Nat s, ProcType a) => ProcType (FSVec s a) 
(ProcType o[a8dsT], ProcType o[a8dsU], ProcType o[a8dsV], Data o[a8dsT], Data o[a8dsU], Data o[a8dsV], Lift o[a8dsT], Lift o[a8dsU], Lift o[a8dsV]) => ProcType (o[a8dsT], o[a8dsU], o[a8dsV]) 
(ProcType o[a8dsW], ProcType o[a8dsX], ProcType o[a8dsY], ProcType o[a8dsZ], Data o[a8dsW], Data o[a8dsX], Data o[a8dsY], Data o[a8dsZ], Lift o[a8dsW], Lift o[a8dsX], Lift o[a8dsY], Lift o[a8dsZ]) => ProcType (o[a8dsW], o[a8dsX], o[a8dsY], o[a8dsZ]) 
(ProcType o[a8dt0], ProcType o[a8dt1], ProcType o[a8dt2], ProcType o[a8dt3], ProcType o[a8dt4], Data o[a8dt0], Data o[a8dt1], Data o[a8dt2], Data o[a8dt3], Data o[a8dt4], Lift o[a8dt0], Lift o[a8dt1], Lift o[a8dt2], Lift o[a8dt3], Lift o[a8dt4]) => ProcType (o[a8dt0], o[a8dt1], o[a8dt2], o[a8dt3], o[a8dt4]) 
(ProcType o[a8dt5], ProcType o[a8dt6], ProcType o[a8dt7], ProcType o[a8dt8], ProcType o[a8dt9], ProcType o[a8dta], Data o[a8dt5], Data o[a8dt6], Data o[a8dt7], Data o[a8dt8], Data o[a8dt9], Data o[a8dta], Lift o[a8dt5], Lift o[a8dt6], Lift o[a8dt7], Lift o[a8dt8], Lift o[a8dt9], Lift o[a8dta]) => ProcType (o[a8dt5], o[a8dt6], o[a8dt7], o[a8dt8], o[a8dt9], o[a8dta]) 
(ProcType o[a8dtb], ProcType o[a8dtc], ProcType o[a8dtd], ProcType o[a8dte], ProcType o[a8dtf], ProcType o[a8dtg], ProcType o[a8dth], Data o[a8dtb], Data o[a8dtc], Data o[a8dtd], Data o[a8dte], Data o[a8dtf], Data o[a8dtg], Data o[a8dth], Lift o[a8dtb], Lift o[a8dtc], Lift o[a8dtd], Lift o[a8dte], Lift o[a8dtf], Lift o[a8dtg], Lift o[a8dth]) => ProcType (o[a8dtb], o[a8dtc], o[a8dtd], o[a8dte], o[a8dtf], o[a8dtg], o[a8dth])