anchor.diff:          }
   
       member self.ToXElem () =
  -        XElem.create (string self.OnBuild) []
  +          XElem.create (string self.OnBuild) []
           |> XElem.setAttribute Constants.Include self.Include
           |> mapOpt self.Condition ^ XElem.setAttribute Constants.Condition
           |> mapOpt self.Link      ^ XElem.addElem Constants.Link
  
positive.code: #r "System.Xml.Linq"
  #load "Prelude.fs"
  #load "XLinq.fs"
  open Forge.Prelude
  open Forge.XLinq
  #else
  module Forge.ProjectSystem
  #endif
  
  open System
  open System.Collections.Generic
  open System.Xml
  open System.Xml.Linq
  
negative.code: 
  
  type SourceElement =
      | File      of fileName:string
      | Pair      of sigfile:string * modfile:string
      | Directory of dirName:string
  
  //type SourceElement =
  //    | File      of SourceFile
  //    | Pair      of SourcePair
  //    | Directory of SourceElement list
  
  //    member self.ToXElem () : XElement list =
  //        match self with
  //        | File  x       -> [x.ToXElem()]
  //        | Pair  x       -> x.ToXElem()
  //        | Directory (content=x)   -> 
  //            let rec loop acc (srcls:SourceElement list) =
  //                match srcls with
  //                | [] -> acc
  //                | File s::tl -> loop (toXElem s ::acc) tl
  //                | Pair s::tl -> loop (toXElem s @ acc) tl
  //                | Directory (content=s)::tl -> loop ((loop [] s)@acc) tl
  //            loop [] x
  //        
  
  
  type Property<'a> =
  