type ('a, 'b) t
= ('a, 'b) Make(BL.Empty)(BL.Codegen)(BL.Bool)(BL.Int)(BL.Int)(BL.Loop)(BL.Product)(BL.Exn)(BL.Sequencing).Morphism.t
val underlying : ('a, 'b) t -> 'a m -> 'b m
val domain : ('a, 'b) t -> 'a t
val range : ('a, 'b) t -> 'b t
val identity : 'a t -> ('a, 'a) t
val compose : ('a, 'b) t -> ('b, 'c) t -> ('a, 'c) t
val tensor : ('a, 'b) t -> ('c, 'd) t -> ('a * 'c, 'b * 'd) t
val pullback_at_path : (pos, pos) t -> 'a Path.t -> 'a t -> ('a, 'a) t k
val pullback_pointwise : (pos, pos) t -> 'a t -> ('a, 'a) t k
val sub : ofs:pos m -> pos t -> pos t -> (pos, pos) t k