anchor.diff:      g.GetTriplesWithSubjectObject(uriNode p (Graph g), uriNode o (Graph g))
     let bySubjectPredicate p o (Graph g) =
       g.GetTriplesWithSubjectPredicate(uriNode p (Graph g), uriNode o (Graph g))
  +  let byType o (Graph g) = seq {
  +    for s in g.GetTriplesWithPredicateObject(uriNode (Uri.from "http://www.w3.org/1999/02/22-rdf-syntax-ns#type") (Graph g), uriNode o (Graph g)) do
  +      yield! g.GetTriplesWithSubject(s.Subject);
  +    }
  +
     let fromSingle f x g = f x g |> Resource.from
     let fromDouble f x y g = f x y g |> Resource.from
   
  
positive.code: module xsd =
    open VDS.RDF
  
    let mapL f n =
      match n with
      | Node.Literal l -> (f l)
      | _ -> failwith (sprintf "%A is not a literal node" n)
  
    let string =
      function
      | Node.Literal(Literal.String s) -> s
  
negative.code:   open triple
    open prefixes
  
    let fromSubject  = fromSingle bySubject
    let fromPredicate  = fromSingle byPredicate
    let fromObject  = fromSingle byObject
    let fromPredicateObject = fromDouble byPredicateObject
    let fromSubjectObject  = fromDouble bySubjectObject
    let fromSubjectPredicate  = fromDouble bySubjectPredicate
    let fromType = fromSingle byType
  
    let asTriples (R(s,px) ) = [
        for (p, o) in px -> (s, p, o)
  