Suppose we have some existing class or restriction Cand the following:
{-
type family F t = s | s -> t
type D s = (s ~ T t, C t)
Of course, type D s ...it cannot be compiled due to an unknown variable t, but how can I write something like D s? I basically want to write:
type D s = (C (T_Inverse s))
I think this should be fair, because it T_Inverseexists because of injectivity . I just donβt know how to express it.
source
share