anchor.diff:              GetId = (fun _ -> MagicMapper.magicId<'TId>)
               StateBuilder = stateBuilder
               Validators = List.empty
  -            Handler = (fun _ -> f >> Seq.singleton)
  +            StateValidation = Success
  +            Handler = (fun _ _ -> f >> Seq.singleton >> Success)
               SystemConfiguration = systemConfiguration
  -        } : CommandHandler<'TCmd, 'TCommandContext, 'TState, 'TId, 'TEvent,'TMetadata> 
  +        } : CommandHandler<'TCmd, 'TCommandContext, 'TState, 'TId, 'TEvent,'TMetadata,'TState option> 
   
       let toChoiceValidator cmd r =
           if r |> Seq.isEmpty then
  
positive.code:     SetMessageId : Guid -> 'TMetadata -> 'TMetadata
  }
  
  type CommandHandler<'TCmd, 'TCommandContext, 'TCommandState, 'TId, 'TEvent,'TMetadata> = {
      GetId : 'TCommandContext -> 'TCmd -> 'TId
      StateBuilder : NamedStateBuilder<'TCommandState, 'TMetadata>
      Validators : Validator<'TCmd,'TCommandState> list
      Handler : 'TCommandContext -> 'TCmd -> seq<'TEvent * 'TMetadata>
      SystemConfiguration : SystemConfiguration<'TMetadata>
  }
  
  
negative.code:          |> List.map (fun x -> x)
           |> List.fold (fun s validator -> v.apl validator s) (Choice.returnM cmd) 
  
      let untypedGetId<'TId,'TCmd,'TEvent,'TState, 'TCommandContext, 'TMetadata, 'TValidatedState> (sb : CommandHandler<'TCmd, 'TCommandContext, 'TState, 'TId, 'TEvent,'TMetadata, 'TValidatedState>) (context : 'TCommandContext) (cmd:obj) =
          match cmd with
          | :? 'TCmd as cmd ->
              sb.GetId context cmd
  