anchor.diff:  
           let rec toString useFullName (t: Type) =
   
  -            let hasUnitOfMeasure = 
  -                t.IsGenericType && 
  -                (t.Name = typeof<bool>.Name ||
  -                 t.Name = typeof<obj>.Name ||
  -                 t.Name = typeof<int>.Name ||
  -                 t.Name = typeof<int64>.Name ||
  -                 t.Name = typeof<float>.Name ||
  -                 t.Name = typeof<float32>.Name ||
  -                 t.Name = typeof<decimal>.Name)
  +            let hasUnit =  hasUnitOfMeasure t
   
               let innerToString (t: Type) =
                   match t with
  -                | _ when t.Name = typeof<bool>.Name && not hasUnitOfMeasure -> "bool"
  -                | _ when t.Name = typeof<obj>.Name && not hasUnitOfMeasure  -> "obj"
  -                | _ when t.Name = typeof<int>.Name && not hasUnitOfMeasure  -> "int"
  -                | _ when t.Name = typeof<int64>.Name && not hasUnitOfMeasure  -> "int64"
  -                | _ when t.Name = typeof<float>.Name && not hasUnitOfMeasure  -> "float"
  -                | _ when t.Name = typeof<float32>.Name && not hasUnitOfMeasure  -> "float32"
  -                | _ when t.Name = typeof<decimal>.Name && not hasUnitOfMeasure  -> "decimal"
  -                | _ when t.Name = typeof<string>.Name && not hasUnitOfMeasure  -> "string"
  +                | _ when t.Name = typeof<bool>.Name && not hasUnit -> "bool"
  +                | _ when t.Name = typeof<obj>.Name && not hasUnit  -> "obj"
  +                | _ when t.Name = typeof<int>.Name && not hasUnit  -> "int"
  +                | _ when t.Name = typeof<int64>.Name && not hasUnit  -> "int64"
  +                | _ when t.Name = typeof<float>.Name && not hasUnit  -> "float"
  +                | _ when t.Name = typeof<float32>.Name && not hasUnit  -> "float32"
  +                | _ when t.Name = typeof<decimal>.Name && not hasUnit  -> "decimal"
  +                | _ when t.Name = typeof<string>.Name && not hasUnit  -> "string"
                   | _ when t.Name = typeof<Void>.Name -> "()"
                   | _ when t.Name = typeof<unit>.Name -> "()"
                   | t when t.IsArray -> (t.GetElementType() |> toString useFullName) + "[]"
  
positive.code:         let maxWidth = defaultArg maxWidth 100
          let useQualifiedNames = defaultArg useQualifiedNames false
  
          let knownNamespaces =
              [ t.Namespace
                "Microsoft.FSharp.Core"
  
negative.code:             let rec eraseType(typ:Type): Type =
                  match typ with
                  | t when t.Attributes &&& enum (int32 TypeProviderTypeAttributes.IsErased) <> enum 0 -> eraseType typ.BaseType
                  | t when isFSharpUnitAnnotated t -> eraseType typ.UnderlyingSystemType
                  | t when t.IsArray ->
                      let rank = t.GetArrayRank()
                      let et = eraseType (t.GetElementType())
  