anchor.diff:              cad.ConstructorArguments.Count = 1 &&
               cad.ConstructorArguments.[0].Value :?> string = ff.Name)
   
  +[<RequireQualifiedAccess>]
  +type Wildcard =
  +    | Seq of elementType: System.Type * ISequenceProcessor
  +    | String
  +    | None
  +
   let tryGetWildcardType f =
       let mkSP (sP: System.Type) (eT: System.Type) =
           sP.MakeGenericType(eT)
           |> System.Activator.CreateInstance :?> ISequenceProcessor
       let tryGetWildcardType (f: Reflection.PropertyInfo) =
           let t = f.PropertyType
  -        if t.IsArray then
  +        if t = typeof<string> then
  +            Wildcard.String
  +        elif t.IsArray then
               let eT = t.GetElementType()
  -            Some (eT, mkSP typedefof<ArrayProcessor<_>> eT)
  +            Wildcard.Seq (eT, mkSP typedefof<ArrayProcessor<_>> eT)
           elif t.IsGenericType && t.GetGenericTypeDefinition() = typedefof<list<_>> then
               let eT = t.GetGenericArguments().[0]
  -            Some (eT, mkSP typedefof<ListProcessor<_>> eT)
  -        else None
  +            Wildcard.Seq (eT, mkSP typedefof<ListProcessor<_>> eT)
  +        else Wildcard.None
       match f with
       | RecordField (f, true)
           when (f.DeclaringType.GetCustomAttributes(typeof<WildcardAttribute>, false) |> Array.isEmpty |> not) ->
  
positive.code:         | Some w -> w
          | None ->
              match tryGetWildcardType f with
              | Some (eT, sP) -> writeWildcard eT (getS eT) sP
              | None ->
                  match tryWritePrimitiveField f false with
                  | Some wp ->
                      S.Make(true, fun w _ x ->
  
negative.code:         |> Some
      else None
  
  let parseRemainingStrings (eD: D) k (p: Parameters) =
      let data = System.Collections.ArrayList()
      let rec loop() =
          match eD.Decode p with
          | Some (Success x) ->
              data.Add(x) |> ignore
              loop()
          | None -> Some (Success (box (k (data.ToArray()))))
          | err -> err
      loop()
  
  let parseWildcardSeq (eT: System.Type) (eD: D) (sP: ISequenceProcessor) : D =
      if eD.ReadsJson() then raise (NoFormatError eT)
      D.Make(false, Set.empty, parseRemainingStrings eD sP.FromSequence)
  
  let parseWildcardString (eD: D) : D =
      D.Make(false, Set.empty, parseRemainingStrings eD (Seq.cast >> String.concat "/"))
  
  let parseField getD (f: Field) =
      match getJsonParser f with
  