| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
Control.Distributed.Process.Internal.Closure.TH
Contents
Description
Template Haskell support
User-level API
remotable :: [Name] -> Q [Dec] Source #
Create the closure, decoder, and metadata definitions for the given list of functions
remotableDecl :: [Q [Dec]] -> Q [Dec] Source #
Like remotable, but parameterized by the declaration of a function
 instead of the function name. So where for remotable you'd do
f :: T1 -> T2 f = ... remotable ['f]
with remotableDecl you would instead do
remotableDecl [
   [d| f :: T1 -> T2 ;
       f = ...
     |]
 ]remotableDecl creates the function specified as well as the various
 dictionaries and static versions that remotable also creates.
 remotableDecl is sometimes necessary when you want to refer to, say,
 $(mkClosure 'f) within the definition of f itself.
NOTE: remotableDecl creates __remoteTableDecl instead of __remoteTable
 so that you can use both remotable and remotableDecl within the same
 module.
mkStatic :: Name -> Q Exp Source #
Construct a static value.
If f : forall a1 .. an. T
 then $(mkStatic 'f) :: forall a1 .. an. Static T.
 Be sure to pass f to remotable.
functionSDict :: Name -> Q Exp Source #
If f : T1 -> T2 is a monomorphic function
 then $(functionSDict 'f) :: Static (SerializableDict T1).
Be sure to pass f to remotable.
functionTDict :: Name -> Q Exp Source #
If f : T1 -> Process T2 is a monomorphic function
 then $(functionTDict 'f) :: Static (SerializableDict T2).
Be sure to pass f to remotable.