I have some module context(s) defined like this, where both Parent and Child are required to have a type t to meet some interface:
module Parent = {
type t = {foo: int};
module Child = {
type t = {bar: int};
let fromParent: t => t = ({foo}) => {bar: foo};
};
};
How can I define the signature for fromParent since both types are named t? I remember coming across a way to describe this when dealing with something like Cmp.t = option(Parent.t), but I no longer have access to that codebase and I don’t recall where in the (ocaml? reasonml? bucklescript?) docs I came across the solution.
Any hints would be appreciated.