distributed-closure-0.1.0.0: src/Control/Distributed/Closure.hs
-- | Serializable closures for distributed programming.
{-# OPTIONS_GHC -funbox-strict-fields #-}
module Control.Distributed.Closure
( Serializable
-- * Closures
, Closure
, closure
, unclosure
, cpure
, cap
, cmap
-- * Closure dictionaries
-- $serializable-dicts
, Dict(..)
) where
import Control.Distributed.Closure.Internal
import Data.Constraint (Dict(..))
-- $serializable-dicts
--
-- A 'Dict' reifies a constraint in the form of a first class value. The 'Dict'
-- type is not serializable: how do you serialize the constraint that values of
-- this type carry? However, for any constraint @c@, a value of type @'Closure'
-- ('Dict' c)@ /can/ be serialized and sent over the wire, just like any
-- 'Closure'. A /serializable dictionary/ for some constraint @c@ is a value of
-- type @'Closure' ('Dict' c)@.