32 lines
610 B
OCaml
32 lines
610 B
OCaml
open Import
|
|
|
|
module Id : sig
|
|
type 'a t
|
|
|
|
val eq : 'a t -> 'b t -> ('a, 'b) eq option
|
|
end
|
|
|
|
module type S = sig
|
|
type t
|
|
|
|
val id : t Id.t
|
|
|
|
val load : Path.t -> t
|
|
val to_string : Path.t -> t -> string
|
|
end
|
|
|
|
type 'a t = (module S with type t = 'a)
|
|
|
|
val eq : 'a t -> 'b t -> ('a, 'b) eq option
|
|
|
|
module Make
|
|
(T : sig type t end)
|
|
(F : functor (C : Sexp.Combinators) -> sig val t : T.t C.t end)
|
|
: S with type t = T.t
|
|
|
|
module Make_full
|
|
(T : sig type t end)
|
|
(To_sexp : sig val t : Path.t -> T.t -> Sexp.t end)
|
|
(Of_sexp : sig val t : Path.t -> Sexp.Ast.t -> T.t end)
|
|
: S with type t = T.t
|