5 data Binding // Private
\r
6 class Serializable a where
\r
7 getBinding :: Binding
\r
13 data ReadGraph // Private
\r
14 class ReadTransaction where
\r
15 getGraph :: ReadGraph
\r
17 resource :: ReadTransaction => String -> Resource
\r
18 (#) :: ReadTransaction => Resource -> Resource -> [Resource]
\r
19 valueOf :: ReadTransaction => Serializable a => Resource -> a
\r
24 data WriteGraph // Private
\r
25 data Graph a = Graph (WriteGraph -> a)
\r
27 instance Monad Graph where
\r
28 return x = Graph (\_ -> x)
\r
29 Graph g >>= f = \wg -> f (g wg) wg
\r
30 map f (Graph g) = Graph (f . g)
\r
32 newResource :: Graph Resource
\r
33 newResource = Graph __WriteGraph_newResource
\r
34 newLiteral :: Serializable a => a -> Graph Resource
\r
35 newLiteral = Graph (\wg ->
\r
36 literal = __WriteGraph_newResource wg
\r
37 _ = __WriteGraph_claimValue wg literal a getBinding
\r
40 statement :: Resource -> Resource -> Resource -> Graph ()
\r
41 statement s p o = Graph (\wg -> __WriteGraph_claim wg s p o)