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?
Functor(struct ... end)
feels quite clunky (two delimiters) is there any way to clean this up?