anchor.diff:  
       [<Theory; InMemoryXmlConventions>]
       let SutCorrectlyRoundTripsChangesetOfDiscriminatedUnions
  -        (sut : AtomEventStream<SerializableChangeset>)
  +        (writer : AtomEventStream<SerializableChangeset>)
  +        (reader : AtomEventStream<SerializableChangeset>)
           (tef : TestEventF)
           (teg : TestEventG)
           (id : Guid) =
  
positive.code:                 | G(x) -> x :> obj
              let events = changeset.Items |> Seq.map extract |> Seq.toArray
              { SerializableChangeset.Id = changeset.Id; Items = events }
          let duObs = Observer.Create(toObj >> sut.OnNext)
          duObs.OnNext({ Id = id; Items = [| tef |> F; teg |> G |]})
  
          let ofObj (changeset : SerializableChangeset) =
  
negative.code:                 | _ -> raise(System.ArgumentException("Unknown event type."))
              let events = changeset.Items |> Array.map infuse
              { Id = changeset.Id; Items = events }
          let duSeq = reader |> Seq.map ofObj
          let actual = duSeq |> Seq.toList
  
          let expected = [ { Id = id; Items = [| tef |> F; teg |> G |] } ]
  