module type S = sig ... endInterface which describes the Git object.
module type RAW = sig ... endInterface which describes raw operations. That means all serialization/unserialization to a Cstruct.t.
module Make : functor (Hash : sig ... end) -> functor (Inflate : sig ... end) -> functor (Deflate : sig ... end) -> S with module Hash := Hash and module Inflate := Inflate and module Deflate := Deflate and module Blob = Blob.Make(Hash) and module Commit = Commit.Make(Hash) and module Tree = Tree.Make(Hash) and module Tag = Tag.Make(Hash)The functor to make the OCaml representation of the Git object by a specific hash implementation, an S.INFLATE implementation for the decompression and a S.DEFLATE implementation for the compression.
module Raw : functor (Hash : sig ... end) -> functor (Inflate : sig ... end) -> functor (Deflate : sig ... end) -> RAW with module Hash := Hash and module Inflate := Inflate and module Deflate := Deflate and module Blob = Blob.Make(Hash) and module Commit = Commit.Make(Hash) and module Tree = Tree.Make(Hash) and module Tag = Tag.Make(Hash) and module Value = Make(Hash)(Inflate)(Deflate) and type t = Make(Hash)(Inflate)(Deflate).tThe functor to make the OCaml representation of the Git object by a specific hash implementation, and S.INFLATE implementation for the decompression and a S.DEFLATE implementation for the compression.