anchor.diff:              raise EncoderException
   
   let unionDecoder dD (i: FormatSettings) (t: System.Type) =
  +    if i.FlattenCollections &&
  +        t.IsGenericType &&
  +        t.GetGenericTypeDefinition() = typedefof<list<_>>
  +    then
  +        let tg = t.GetGenericArguments()
  +        let tI = tg.[0]
  +        let dI = dD tI
  +        let empty = makeEmptyList t
  +        let ofSeq =
  +            FastInvoke.Compile(
  +                listModule.GetMethod("OfSeq").MakeGenericMethod(tg)
  +            ).Invoke1
  +        let seqCast =
  +            FastInvoke.Compile(
  +                seqModule.GetMethod("Cast").MakeGenericMethod(tg)
  +            ).Invoke1
  +        function
  +        | Array vs -> ofSeq (seqCast (Seq.map dI vs))
  +        | _ -> raise DecoderException
  +    else
       let cs =
           FST.GetUnionCases(t, flags)
           |> Array.map (fun c ->
  
positive.code:         | Some v -> dec v
          | None -> raise DecoderException
  
  let unionEncoder dE (i: FormatSettings) (t: System.Type) =
      let tR = FSV.PreComputeUnionTagReader(t, flags)
      let cs =
          FST.GetUnionCases(t, flags)
  
negative.code: 
  module IntelliFactory.WebSharper.Core.Json
  
  open System.Runtime.CompilerServices
  module A = IntelliFactory.WebSharper.Core.Attributes
  module P = IntelliFactory.JavaScript.Packager
  module R = IntelliFactory.WebSharper.Core.Reflection
  