class
(ReflectDescriptor a, Typeable a, Wire a) => ProtoBuf a
data Expression a b where
OpenTable :: (ProtoBuf b) => Int -> Table ->
Expression () b
OpenFile :: (ProtoBuf b) => Int -> String ->
Expression () b
WriteFile :: (Typeable a, ProtoBuf b) => Int ->
String -> Expression a b -> Expression b ()
WriteTable :: (Typeable a, ProtoBuf b) => Int ->
Table -> Expression a b -> Expression b ()
Map :: (ProtoBuf a, ProtoBuf b, ProtoBuf c) => Int -> (a
-> b) -> Expression c a -> Expression a b
LocalMerge :: (ProtoBuf a) => Int -> [Expression c a]
-> Expression c a
We can implement a version of the compos operator like so: