// http://code.google.com/p/pure-lang/issues/detail?id=78

// These cases ought to be left undefined by the built-in macro rules:
__lambda__ [] (a*b);
__case__ x [];
x __when__ [];
x __with__ [];

// You can now handle them any way you like:
def __case__ x [] = throw failed_match;
def x __when__ [] = x;
def x __with__ [] = x;
def __lambda__ [] x = x&;

__case__ x [];
x __when__ [];
x __with__ [];

foo = __lambda__ [] (a*b);
