anchor.diff:          let shape =
               match shapeof<'Union> with
               | Shape.FSharpUnion (:? ShapeFSharpUnion<'Union> as s) -> s
  -            | _ -> 
  +            | _ ->
                   sprintf "Type '%O' is not an F# union" typeof<'Union>
                   |> invalidArg "Union"
   
  
positive.code: 
      /// <summary>
      ///     Given a primite object encoder instance, generates
      ///     an F# union encoder which constructs and deconstructs
      ///     DU instances into a flat structure. All union cases must
      ///     contain exactly one field.
      /// </summary>
      /// <param name="encoder">Encoder used for converting union case payloads into given format.</param>
      /// <param name="requireRecordFields">Fail encoder generation if union cases contain fields that are not F# records. Defaults to false.</param>
      /// <param name="allowNullaryCases">Fail encoder generation if union contains nullary cases. Defaults to true.</param>
      static member Create<'Union, 'Format when 'Union :> IUnionContract>(encoder : IEncoder<'Format>, ?requireRecordFields : bool, ?allowNullaryCases : bool) : UnionContractEncoder<'Union, 'Format> = 
          let config = { requireRecordPayloads = defaultArg requireRecordFields false ; allowNullaryCases = defaultArg allowNullaryCases true }
          EncoderFactory<'Union, 'Format>.Create config encoder
negative.code:         Payload  : 'Encoding
      }
  
  /// Provides an encoder implementation for a union of events
  [<AbstractClass>]
  type UnionContractEncoder<'Union, 'Format> internal () =
      /// Gets the union case string identifier for given union instance
  