anchor.diff:          createXmlReader(reader) 
           |> readXamlFile xamlInfo.FileName
   
  +    let rec checkConflictingNames root =
  +        let dups =
  +            root.Children
  +            |> Seq.groupBy (fun node -> node.Data.Name)
  +            |> Seq.tryFind (fun (key, values) -> Seq.length values > 1)
  +        match dups with
  +        | Some (_, nodes) ->
  +            failwithf
  +                "Components at %A under %A at %A have identical names"
  +                (nodes
  +                 |> Seq.map (fun node -> node.Data.Position)
  +                 |> List.ofSeq)
  +                (root.Data.Name)
  +                (root.Data.Position)
  +        | None ->
  +            root.Children
  +            |> Seq.iter checkConflictingNames
  +
  +    checkConflictingNames root
  +
       eraseType thisAssembly rootNamespace typeName root.NodeType
           |> addDefinitionLocation root.Data.Position
           |+> (provideConstructor
  
positive.code:             |> addXmlDoc (sprintf "Initializes a %s instance" typeName)
              |> addDefinitionLocation root.Data.Position)
  
      //TODO: Lift children of unnamed nodes
      //TODO: Generate nested types for each child
      //TODO: Generate properties for each child
  (*        |++> (root.Children
  
negative.code:                 match infoOfXamlElement filename xaml with
                  | Some (XamlElementInfo(data, typeName)) ->
                      let has_children = not xaml.IsEmptyElement
                      match data with
                      | Named _ ->
                          { NodeType = typeOfXamlElement typeName ;
                            Data = data ;
                            Children =
                              (if has_children then
                                  readNewElement []
                               else
                                  []) }
                          :: siblings
                          |> readNewElement
                      | Unnamed _ ->
                          readNewElement siblings
                          |> readNewElement
                  | None -> failwithf "Error near %A" (posOfReader filename xaml)
              | XmlNodeType.EndElement ->
                  siblings
  