anchor.diff:      type EventProcessingConfiguration = {
           CommandHandlers : Map<string, (Type * cmdHandler)>
           StateBuilders: Set<IStateBuilder>
  -        EventHandlers : Map<string, (Type *  obj -> (string *  IStateBuilder * unit -> seq<string>))>
  +        EventHandlers : Map<string, (Type *  (obj -> option<(string *  IStateBuilder * (obj -> seq<obj>))>))>
       }
       with static member Empty = { CommandHandlers = Map.empty; StateBuilders = Set.empty; EventHandlers = Map.empty } 
   
  
positive.code:                 ParentId = Some parentId
              }
  
              do! model.RunCommand addParentCmd (parentId.ToString()) |> Async.Ignore
              do! model.RunCommand addChildCmd (childId.ToString()) |> Async.Ignore
  
              do! Async.Sleep(1000)
  
              let! parentStream = connection.ReadStreamEventsBackwardAsync(parentId.ToString(), EventStore.ClientAPI.StreamPosition.End, 1, false) |> Async.AwaitTask
  
              parentStream.Events
              |> Seq.head
              |> (fun evt -> evt.Event.EventType) |> should equal "ChildAddedEvent"
          } |> Async.RunSynchronously
negative.code: 
      [<Fact>]
      let ``blah`` () : unit =
          let onChildAdded (evt : PersonAddedEvent) (state : unit) =
              match evt.ParentId with
              | Some parentId -> Seq.singleton ({ Id = parentId; ChildId = evt.Id } :> obj)
              | None -> Seq.empty
  
          async {
              let! connection = getConnection()
  