anchor.diff:          let id = aggregate.GetId cmd
           let streamName = settings.GetStreamName () aggregate.AggregateType id
   
  -        let streamEvents = 
  -            match allEvents.Events |> Map.tryFind streamName with
  -            | Some events -> 
  -                events 
  -                |> Vector.map fst 
  -                |> Vector.toSeq
  -                |> Some
  -            | None -> None
  -
           let result = 
               choose {
  -                let program = aggregate.Run cmd streamEvents streamName
  +                let program = aggregate.Run cmd streamName
                   let! result = TestInterpreter.interpret program allEvents Map.empty
                   return
                       result
  
positive.code:             let handler = getHandler (cmd.GetType())
              handler.GetId cmd :> IIdentity
              
          let runCmd (cmd : obj) (events : Option<seq<obj>>) stream =
              eventStream {
                  let! state = handlers.StateBuilder |> StateBuilder.toStreamProgram stream
                  let handler = getHandler (cmd.GetType())
  
negative.code: type Aggregate<'TAggregateType>
      (
          commandTypes : Type list, 
          runCommand : obj -> string -> EventStreamProgram<Choice<obj list, NonEmptyList<ValidationFailure>>>, 
          getId : obj -> IIdentity, aggregateType : 'TAggregateType
      ) =
      member x.CommandTypes = commandTypes
      member x.GetId = getId
      member x.AggregateType = aggregateType
      member x.Run (cmd:obj) =
          runCommand cmd
      
  open FSharpx.Collections
  
  