Module Compact.Custom

type tag = int
val join_tags : (tag * int) list -> tag
module type S = sig ... end
val make : (module S with type input = 'a) -> 'a t