The notation `Copyable and Comparable` is already supported. You'll be able to check for effects in concepts by just using boolean expressions based on the compile-time reflection capabilities of the language. Just like we have `typetraits` to check various characteristics of types, we'll have a similar "call traits" module that can answer questions about call expressions.
@mora, hmm, you are right. This example requires some form of back-tracking to get it right, but I'll think about it - perhaps I'll be able to come up with some kind of supporting data structure to take care of such "entangled" types. You know your language is getting overly complicated when you start borrowing terms from quantum mechanics :) On a more serious note, I'd rather limit what's possible in these highly unlikely type class against type class scenarios than to cripple the capabilities of the concepts in the general case (for example, the problem here can be ruled out if I allow only a single superposition collapse during any given signature matching).
