anchor.diff:                     TriageLevel = cmd.TriageLevel
                  }
   
  -           yield triagePatient
  -                 |> simpleHandler stateBuilder
  -                 |> buildCmd
  +           yield buildCmdHandler triagePatient
   
              yield registerPatient
                   |> fullHandler isRegistered
  
positive.code: type DischargePatientCommand = {
      VisitId : VisitId
      DischargeLocation : DischargeLocation
  }
  
  type PatientDischaredEvent = {
      VisitId : VisitId
      DischargeLocation : DischargeLocation
  }
  
  open Eventful.AggregateActionBuilder
  
negative.code:             )
          Eventful.AggregateActionBuilder.fullHandler systemConfiguration s withMetadata
  
      type VisitState = {
          Registered : bool
          CurrentTriageLevel : Option<TriageLevel>
          RegistrationTime : Option<DateTime>
          DischargeTime : Option<DateTime>
      }
      with static member Empty = { 
              Registered = false
              CurrentTriageLevel = None
              DischargeTime = None
              RegistrationTime = None }
  
      let visitStateBuilder = 
          StateBuilder.Empty VisitState.Empty
          |> StateBuilder.addHandler (fun s (e:PatientTriagedEvent) ->
              { s with CurrentTriageLevel = Some e.TriageLevel })
          |> StateBuilder.addHandler (fun s (e:PatientRegisteredEvent) ->
              { s with   
                   Registered = true
                   RegistrationTime = Some e.RegistrationTime })
          |> StateBuilder.addHandler (fun s (e:PatientDischargedEvent) ->
              { s with DischargeTime = Some e.DischargeTime })
          
      let isRegistered = 
          StateBuilder.Empty false
          |> StateBuilder.addHandler (fun s (e:PatientRegisteredEvent) -> true)
  