Talk:Comparing class alias proposals
About context synonyms:
A context synonym may appear anywhere a context is allowed:
Q: May a CS's RHS refer to other CS's? For example:
context Foo a = (BoundedEnum a, Eq a, Ord a)
I think you've already answered your own question. What to do about loops is something else of course.
Q: Apart from type constructors, may a CS's variables be class constructors (things of kind ... -> Context) as well? For example:
Q: May CS's be passed as arguments to other CS's? For example
I'd say this is an obvious no until we have some more general concept of class-variables. And let's not try to fit that in a context-synonym-proposal ;)
Q: May CS's be partially applied? Consider these alternate definitions of BoundedEnum:
Does this actually buy us anything? Unless we go for one of the extensions and we want something like this to be the only syntax perhaps?