anchor.diff:              else buildSimpleOptional ty s.Value
           | OptionalBoolData(v) ->
               if v then (box (Some(true))) else box None
  +        | ListData(ty, li) ->
  +            li |> buildSimpleList ty
           | RecordData(ty, data) ->
               FSharpValue.MakeRecord(ty, data |> Array.map buildType)
           | UnionData(o) ->
  
positive.code:                             let infoLine = info.Print(i + 2)
                              (a + nameLine + infoLine))
                          ""
                  | Invalid ->
                      sprintf "%sInvalid\n" (String.Join("", [1 .. i] |> List.toArray |> Array.map (fun _ -> " ")))
              override this.ToString() = this.Print(0)
  
      type private ArgParserDataInfo =
          | RequiredData of Primitive * string option
          | OptionalData of Primitive * string option
          | OptionalBoolData of bool
          | RecordData of Type * ArgParserDataInfo[]
          | UnionData of (UnionCaseInfo * ArgParserDataInfo) option
  
negative.code:                             ""
                      let e = sprintf "%s}\n" (String.Join("", [1 .. i] |> List.toArray |> Array.map (fun _ -> " ")))
                      s + a + e
                  | ArgUnion(ty, info) ->
                      info
                      |> Array.fold
                          (fun a (name, info) ->
  