In recent works, we have proposed a general framework for lazy functional logic programming with algebraic polymorphic types,
i.e., parametric datatypes whose data constructors fulfill a given set of equational axioms. The aim of this paper is to investigate
implementation techniques for an extended instance of this framework, namely, lazy functional logic programming with multisets
and constraints. We consider a language (named Seta) which supports a polymorphic datatype Mset(α) along with specific constraints for multisets: strict equality (already present in the general framework), disequality, membership
and non-membership. We describe a quite readable Prolog-based implementation which can be executed on top of any Prolog system
that provides the ability to solve simple arithmetic constraints.
This research has been partially supported by the the Spanish National Project TIC95-0433-C03-01 “CPD” and the Esprit BRA
Working Group EP-22457 “CCLII”.