I’m currently working with functors in a library and often I want to do something like:
type t
module T = Functor (struct
type t = t
end)
However invariably I have to create a temporary type to prevent the shadowing:
type t
type tt = t
module T = Functor(struct
type t = tt
end)
Is there a more correct way to do this?
Additionally the
Functor(struct
...
end)
feels quite clunky (two delimiters) is there any way to clean this up?