* Infer term ordering: total, pairwise lazy, pairwise strict
* allow for guarded rules
* introduce recursion schemes for lists:
	- Catamorphisms (ok)
	- Anamorphisms (need conditionals or guards)
	- Hylomorphisms (need conditionals or guards)
	- Paramorphisms
	- ... (?)
* make clear distinction between syntactic equality (should be (==)) and 
  semantic equality (should be a type class) on terms
  
Open example problem issues:
 
* :s +enhanced; :g eq
   cata applies to a wrong function after matching --> need quality measure for matches functions ?  