anchor.diff:  
   and precord t =
       let makeType vals = 
  -        printfn "vals are %A" vals
           FSharpValue.MakeRecord(t,  vals)
   
       FSharpType.GetRecordFields (t)
  
positive.code:         |> Seq.filter (fun uc -> uc.Name = "Empty") 
          |> Seq.exactlyOne
      Reflection.FSharpValue.MakeUnion(uc, [||])
  
  let (<!>) (p: Parser<_,_>) label : Parser<_,_> =
      fun stream ->
  
negative.code:     pstring f.Name >>.pchar ':'
  
  and pfield (f: Reflection.PropertyInfo) =
      if FSharpType.IsOption f.PropertyType then
          //This is avery limited support for options, only string options are supported. 
          opt (pfieldName f>>.ptype (f.PropertyType.GenericTypeArguments |> Seq.exactlyOne)|>> castToSting)|>>box
  