anchor.diff:      let nil = { InferedProperty.Name = "{http://www.w3.org/2001/XMLSchema-instance}nil"
                   Type = InferedType.Primitive(typeof<bool>, None, true) }
   
  -    type Ctx = System.Collections.Generic.Dictionary<XsdComplexType, InferedProperty>
  +    type InferenceContext = System.Collections.Generic.Dictionary<XsdComplexType, InferedProperty>
   
       // derives an InferedType for an element definition
  -    let rec inferElementType (ctx: Ctx) (elm: XsdElement) =
  +    let rec inferElementType ctx elm =
           let name = getElementName elm
           if elm.IsAbstract 
           then InferedType.Record(name, [], optional = false)
  
positive.code: 
  
      let inferElements elms = 
          let ctx = Ctx()
          match elms |> List.filter (fun elm -> not elm.IsAbstract) with
          | [] -> failwith "No suitable element definition found in the schema."
          | [elm] -> inferElementType ctx elm
  
negative.code:     type IsOptional = bool
      type Occurs = decimal * decimal
  
      // reference equality and mutable type allow for cycles
      [<ReferenceEquality>] 
      type XsdElement = { Name: XmlQualifiedName
                          mutable Type: XsdType
  