P.Mempooltype conflict_handler =
  existing_operation:(Operation_hash.t * operation) ->
  new_operation:(Operation_hash.t * operation) ->
  [ `Keep | `Replace ]type operation_conflict = | Operation_conflict of {existing : Operation_hash.t;new_operation : Operation_hash.t;}type add_error = | Validation_error of Error_monad.error Error_monad.trace| Add_conflict of operation_conflictval init : 
  Context.t ->
  Chain_id.t ->
  head_hash:Block_hash.t ->
  head:Block_header.shell_header ->
  (validation_info * t) Error_monad.tzresult Lwt.tval encoding : t Data_encoding.tval add_operation : 
  ?check_signature:bool ->
  ?conflict_handler:conflict_handler ->
  validation_info ->
  t ->
  (Operation_hash.t * operation) ->
  (t * add_result, add_error) Pervasives.result Lwt.tval remove_operation : t -> Operation_hash.t -> tval merge : 
  ?conflict_handler:conflict_handler ->
  t ->
  t ->
  (t, merge_error) Pervasives.resultval operations : t -> operation Operation_hash.Map.t