
Occur check in higher-order objects in PAKCS:
- no occur check is performed in PAKCS in higher-order objects,
  i.e., in  partially applied functions (which are considered as
  constructors). Thus, the unification

    f =:= (.) f

  does not terminate although it should fail due to the occur check.

  Solution: generate additional clauses for partially applied functions
  in the definition of the predicate "occurs_not". However, this increases
  the size of the generated programs considerably. On the other hand,
  this case occurs very rarely (up to now there is no application making
  use of a real unification of higher-order objects).
  Furthermore, this issue will go away if type classes are systematically
  used so that unification on functional objects is not allowed.
  

