Given a class
class MonadSignal m sigs | m -> sigs where ...
and a class
class CanSignal sigs sigs' where ...
I want to define a type synonym like this
type MonadSignal' sigs m = (MonadSignal m sigs', CanSignal sigs sigs')
Here the sigs' variable isn't mentioned in the head of the MonadSignal' type synonym but it's there just to connect the first and the second constraint, and it's uniquely determined by m which is mentioned in the head.
Normally I think I'd be able to forall it on the RHS but since this is just a Constraint synonym, there's no actual body for the variable to appear in.
Can anything be done here? (besides putting the variable in the head and giving the wrong impression when the synonym is actually used that it's an actual "variable")