Provide more building blocks and extend example
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
module ComputationM
|
||||
( ComputationM
|
||||
, Token
|
||||
, tupleTokens
|
||||
, zipTokens
|
||||
, evalComputationM
|
||||
, inject
|
||||
, mapComputationM
|
||||
@@ -30,10 +32,17 @@ deriving instance (Show a, Show b) => Show (TypedRun a b)
|
||||
data Token a where
|
||||
Token :: Int -> Token a
|
||||
TupleToken :: Token a -> Token b -> Token (a, b)
|
||||
ZipToken :: Token [a] -> Token [b] -> Token [(a, b)]
|
||||
NoToken :: Token ()
|
||||
|
||||
deriving instance Show (Token a)
|
||||
|
||||
tupleTokens :: (Show a, Show b) => Token a -> Token b -> Token (a, b)
|
||||
tupleTokens = TupleToken
|
||||
|
||||
zipTokens :: (Show a, Show b) => Token [a] -> Token [b] -> Token [(a, b)]
|
||||
zipTokens = ZipToken
|
||||
|
||||
data Dependency a b = Dependency (Token a) (TypedRun a b) (Token b)
|
||||
deriving (Show)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user