
TL;DR
This paper introduces a new type class 'Data' in Curry to unify the handling of algebraic data types, logic variables, and strict equality, addressing complexities in functional logic programming.
Contribution
It proposes a novel 'Data' type class to simplify and unify equality and data handling in Curry, improving language semantics and implementation.
Findings
Enhanced handling of equality in Curry
Implications for unification and functional patterns
Potential for improved program optimization
Abstract
Functional logic languages can solve equations over user-defined data and functions. Thus, the definition of an appropriate meaning of equality has a long history in these languages, ranging from reflexive equality in early equational logic languages to strict equality in contemporary functional logic languages like Curry. With the introduction of type classes, where the equality operation "==" is overloaded and user-defined, the meaning became more complex. Moreover, logic variables appearing in equations require a different typing than pattern variables, since the latter might be instantiated with functional values or non-terminating operations. In this paper, we present a solution to these problems by introducing a new type class "Data" which is associated with specific algebraic data types, logic variables, and strict equality. We discuss the ideas of this class and its implications…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
