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[a7L7D], ProcType o[a7L7E], Data o[a7L7D], Data o[a7L7E], Lift o[a7L7D], Lift o[a7L7E]) => ProcType (o[a7L7D], o[a7L7E]) 
(Typeable s, Nat s, ProcType a) => ProcType (FSVec s a) 
(ProcType o[a7L7F], ProcType o[a7L7G], ProcType o[a7L7H], Data o[a7L7F], Data o[a7L7G], Data o[a7L7H], Lift o[a7L7F], Lift o[a7L7G], Lift o[a7L7H]) => ProcType (o[a7L7F], o[a7L7G], o[a7L7H]) 
(ProcType o[a7L7I], ProcType o[a7L7J], ProcType o[a7L7K], ProcType o[a7L7L], Data o[a7L7I], Data o[a7L7J], Data o[a7L7K], Data o[a7L7L], Lift o[a7L7I], Lift o[a7L7J], Lift o[a7L7K], Lift o[a7L7L]) => ProcType (o[a7L7I], o[a7L7J], o[a7L7K], o[a7L7L]) 
(ProcType o[a7L7M], ProcType o[a7L7N], ProcType o[a7L7O], ProcType o[a7L7P], ProcType o[a7L7Q], Data o[a7L7M], Data o[a7L7N], Data o[a7L7O], Data o[a7L7P], Data o[a7L7Q], Lift o[a7L7M], Lift o[a7L7N], Lift o[a7L7O], Lift o[a7L7P], Lift o[a7L7Q]) => ProcType (o[a7L7M], o[a7L7N], o[a7L7O], o[a7L7P], o[a7L7Q]) 
(ProcType o[a7L7R], ProcType o[a7L7S], ProcType o[a7L7T], ProcType o[a7L7U], ProcType o[a7L7V], ProcType o[a7L7W], Data o[a7L7R], Data o[a7L7S], Data o[a7L7T], Data o[a7L7U], Data o[a7L7V], Data o[a7L7W], Lift o[a7L7R], Lift o[a7L7S], Lift o[a7L7T], Lift o[a7L7U], Lift o[a7L7V], Lift o[a7L7W]) => ProcType (o[a7L7R], o[a7L7S], o[a7L7T], o[a7L7U], o[a7L7V], o[a7L7W]) 
(ProcType o[a7L7X], ProcType o[a7L7Y], ProcType o[a7L7Z], ProcType o[a7L80], ProcType o[a7L81], ProcType o[a7L82], ProcType o[a7L83], Data o[a7L7X], Data o[a7L7Y], Data o[a7L7Z], Data o[a7L80], Data o[a7L81], Data o[a7L82], Data o[a7L83], Lift o[a7L7X], Lift o[a7L7Y], Lift o[a7L7Z], Lift o[a7L80], Lift o[a7L81], Lift o[a7L82], Lift o[a7L83]) => ProcType (o[a7L7X], o[a7L7Y], o[a7L7Z], o[a7L80], o[a7L81], o[a7L82], o[a7L83])