anchor.diff:                         if (root.Parent = -1 && root.Entry = rootId) then yield row'.ID
              } @>
   
  -    
  -    let xp0 = child ./. child //                                                        /*/*
  -    let xp1 = descendant ./. parent //                                                  //*/parent::*
  -    let xp2 = descendant ./. (Filter(followingsibling .%. "dirn")) //                   //*[following-sibling::d]
  -    let xp3 = descendant .%. "year" ./. Filter(ancestor ./. preceding .%. "dir") //     //f[ancestor::*/preceding::b]
  +
  +
  +    let xp0 = Path.Child / Path.Child                                                       //  /*/*
  +    let xp1 = Path.Descendant / Path.Parent                                                 //  //*/parent::*
  +    let xp2 = Path.Descendant / (Filter(Path.FollowingSibling % "dirn"))                    //  //*[following-sibling::d]
  +    let xp3 = Path.Descendant % "year" / Filter(Path.Ancestor / Path.Preceding % "dir")     //  //f[ancestor::*/preceding::b]
   
       [<TestFixture>]
       type TestClass() =
  
positive.code:         | Name of string
          | Filter of Path
  
      let internal db = schema.GetDataContext()
      let internal data = db.Data
      let internal text = db.Text
      let internal attributes = db.Attribute
  
      // XML document loading/shredding
      let mutable idx = 0
  
      let new_id() =
          let i = idx
          idx <- i + 1
          i
  
      let rec traverseXml entry parent i (node : XNode) =
          match node with
          | :? XElement as xml ->
              let id = new_id()
              let j = Seq.iter (traverseAttribute entry id) (xml.Attributes())
              let j = traverseChildren entry id (i + 1) (xml.Nodes())
              let d = new Data()
              d.Name <- xml.Name.ToString()
              d.ID <- id
  
negative.code:             d.Post <- i
              d.Parent <- parent
              data.InsertOnSubmit(d)
  
              let t = new Text()
              t.ID <- id
              t.Value <- xtext.Value
              text.InsertOnSubmit(t)
  
              data.Context.SubmitChanges()
              i + 1
          | _ -> i
          
      /// <summary>
      /// Parses the given file as an Xml document, and then inserts its contents in the database. 
      /// </summary>
      /// <param name="filename">The path to the Xml file to be loaded. </param>
      let insertXml entry xml =
          let root_id = new_id()
          let j = traverseXml entry root_id 1 xml
  