mini-egison (hackage): This package provides the pattern-matching facility that fulfills the following three criteria for practical pattern matching for non-free data types: (i) non-linear pattern matching with backtracking; (ii) extensibility of pattern-matching algorithms; (iii) ad-hoc polymorphism of patterns. Non-free data types are data types whose data have no standard forms. For example, multisets are non-free data types because the multiset '[a,b,b]' has two other equivalent but literally different forms '[b,a,b]' and '[b,b,a]'.  The design of the pattern-matching facility is originally proposed in this paper and implemented in the Egison programming language.
Keywords: data|library|mit|pattern|program|backtracking|egison|haskell|non-linear-pattern|pattern-matching