anchor.diff:      let definition = ParseGlossaryFile()
       let (enums, types) = GetAllTypes()
       
  -    let getDefinition (key) = 
  -        match definition.TryGetValue(key) with
  +    let getDefinition (typeName, key) = 
  +        match definition.TryGetValue((sprintf "%s.%s" typeName key)) with
           | true, text -> text
           | _ -> 
  -            printfn "Missing glossary for: %s" key
  -            "FIX:Missing definition in glossary file"
  +            match definition.TryGetValue(key) with
  +            | true, text -> text
  +            | _ -> 
  +                printfn "Missing glossary for: %s" key
  +                "FIX:Missing definition in glossary file"
       
  -    let rec generateTypeTable (t : List<TypeMember>, output : List<string>) = 
  +    let rec generateTypeTable (typeName : string, t : List<TypeMember>, output : List<string>) = 
           for m in t do
               let mutable propertyName = ""
               if m.IsRequired then 
                   propertyName <- """[image:/images/icons/star32.png[Required, 16,16, title="Required"]] """
  -            else
  -                propertyName <- """[image:/images/icons/undefined.png[Optional, 16,16, title="Optional"]] """
  -
  +            else propertyName <- """[image:/images/icons/undefined.png[Optional, 16,16, title="Optional"]] """
               propertyName <- propertyName + m.MemberName
               match m.MemberType with
               | SimpleType(a) -> 
  -                output.Add(sprintf "| %s : `%s`" propertyName a)
  -                output.Add(sprintf "| %s" (getDefinition (m.MemberName)))
  +                if m.ISEnum then
  +                    output.Add(sprintf "| %s : link:/docs/glossary/%s[`%s`]" propertyName a a)
  +                    output.Add(sprintf "| %s" (getDefinition (typeName, m.MemberName)))
  +                else
  +                    output.Add(sprintf "| %s : `%s`" propertyName a)
  +                    output.Add(sprintf "| %s" (getDefinition (typeName, m.MemberName)))
               | ComplexType(a) -> output.Add(sprintf "2+| %s : link:/docs/glossary/%s[`%s`]" propertyName a a)
  -            | ListType(a) ->
  -                if a = "String" then
  +            | ListType(a) -> 
  +                if a = "String" then 
                       output.Add
  -                        (sprintf """2+| [image:/images/icons/linedpaperplus32.png[List, 16,16, title="List"]] %s : List<`%s`>""" propertyName a)
  +                        (sprintf 
  +                             """2+| [image:/images/icons/linedpaperplus32.png[List, 16,16, title="List"]] %s : List<`%s`>""" 
  +                             propertyName a)
                   else 
                       output.Add
                           (sprintf 
  
positive.code:                         typeMember.MemberType <- SimpleType(prop.PropertyType.Name)
                      else typeMember.MemberType <- ComplexType(prop.PropertyType.Name)
                      printfn "%s - %s" prop.Name (prop.PropertyType.Name)
                  if prop.PropertyType.IsEnum then
                      typeMember.ISEnum <- true
                  members.Add(typeMember)
              for con in typ.GetConstructors() do
                  if con.GetParameters().Count() <> 0 then 
  
negative.code:         output.Add("|===")
          output.Add("|Property Name | Description")
          output.Add("")
          generateTypeTable (t.Key, t.Value, output)
          output.Add("|===")
          let value = (typeof<FlexSearch.Api.AnalyzerProperties>.Assembly).GetTypes().First(fun x -> x.Name = t.Key)
          try 
              let instance = Activator.CreateInstance(value)
              let json = JsonConvert.SerializeObject(instance, Formatting.Indented, jsonSettings)
              output.Add("""[source,javascript]
  