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 triple =
    let uriNode u (Graph g) = g.GetUriNode(u |> Uri.toSys)
    let bySubject u (Graph g) = g.GetTriplesWithSubject(uriNode u (Graph g))
    let byObject u (Graph g) = g.GetTriplesWithObject(uriNode u (Graph g))
    let byPredicate u (Graph g) = g.GetTriplesWithPredicate(uriNode u (Graph g))
  
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)
  