S.BackendBackend functions, which might be used by the backends.
module Schema = SchemaA store schema, meant to be provided by the user.
module Hash = HashHashing implementation.
module Contents : 
  Irmin.Contents.Store
    with type hash = Hash.t
     and type value = Schema.Contents.t
    with type key = contents_keyA contents store.
module Node : 
  Irmin.Node.Store
    with type hash = Hash.t
     and type Val.contents_key = Contents.key
     and module Path = Schema.Path
     and module Metadata = Schema.Metadata
    with module Path = Path
    with type key = node_keyA node store.
A node abstraction that is portable from different repos. Similar to Node.Val.
module Commit : 
  Irmin.Commit.Store
    with type hash = Hash.t
     and type Val.node_key = Node.key
     and module Info = Schema.Info
    with type key = commit_keyA commit store.
A commit abstraction that is portable from different repos. Similar to Commit.Val.
module Branch : 
  Irmin.Branch.Store
    with type key = Schema.Branch.t
     and type value = Commit.keyA branch store.
module Slice : sig ... endA slice abstraction.
module Repo : sig ... endA repo abstraction.
module Remote : sig ... endURI-based low-level remote synchronisation.