aboutsummaryrefslogblamecommitdiffstats
path: root/lib/kernel/Multigroup.mli
blob: fab02df720094e9e05c777942e1fbf7508f85e56 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                                                                           
                                                
                      
 
            




                                                             
                                                                          

                                                                            





                                                                                        
                                                                                      
   
(** A multigroup: its schemas, \multigroup\[m]\schema\[s], and its denials,
    \multigroup\[m]\denial\[d]. *)
module Make (S : Abstract.Storage.STORAGE) : sig
  include Merkle.VALUE

  val load :
    ?bind:EphemeralRelation.binding ->
    S.connection ->
    t ->
    (Protocols.Handle.t, Concepts.Condition.condition) result

  (** a multigroup handed over with no address, as a directory holding its
      schemas under \schema and its denials under \denial, to store once the
      write has begun. *)
  val admit :
    string ->
    Protocols.Handle.t ->
    (S.transaction Prototype.Associative.admission, Concepts.Condition.condition) result

  (** an empty one, stored. *)
  val make : S.connection -> (Protocols.Handle.t, Concepts.Condition.condition) result
end