Up
module
Ir_commit
:
sig
Manage the database history.
#
module type
S =
sig
include
Tc
.
S0
#
type
commit
#
type
node
#
val
create :
Ir_task
.
t
->
?node:
node
->
parents:
commit
list
->
t
#
val
node :
t
->
node
option
#
val
parents :
t
->
commit
list
#
val
task :
t
->
Ir_task
.
t
end
#
module
Make :
functor
(C :
Tc
.
S0
)
->
functor
(N :
Tc
.
S0
)
->
S
with
type
commit
:=
C
.
t
and
type
node
=
N
.
t
#
module type
STORE =
sig
include
Ir_ao
.
STORE
#
module
Key :
Ir_hash
.
S
with
type
t =
key
#
module
Val :
S
with
type
t
=
value
and
type
commit
:=
key
end
#
module type
HISTORY =
sig
#
type
t
#
type
node
#
type
commit
#
val
create :
t
->
?node:
node
->
parents:
commit
list
->
commit
Lwt
.
t
#
val
node :
t
->
commit
->
node
option
Lwt
.
t
#
val
parents :
t
->
commit
->
commit
list
Lwt
.
t
#
val
merge :
t
->
commit
Ir_merge
.
t
#
val
lca :
t
->
commit
->
commit
->
commit
list
Lwt
.
t
#
val
closure :
t
->
min:
commit
list
->
max:
commit
list
->
commit
list
Lwt
.
t
#
module
Store :
Ir_contents
.
STORE
with
type
t
=
t
and
type
key
=
commit
end
#
module
History :
functor
(N :
Ir_contents
.
STORE
)
->
functor
(S :
STORE
with
type
Val
.
node
=
N
.
key
)
->
HISTORY
with
type
t
=
N
.
t
*
S
.
t
and
type
node
=
N
.
key
and
type
commit
=
S
.
key
end