2019
DOI: 10.1007/978-3-030-14805-8_4
|View full text |Cite
|
Sign up to set email alerts
|

Proving Type Class Laws for Haskell

Abstract: Type classes in Haskell are used to implement ad-hoc polymorphism, i.e. a way to ensure both to the programmer and the compiler that a set of functions are defined for a specific data type. All instances of such type classes are expected to behave in a certain way and satisfy laws associated with the respective class. These are however typically just stated in comments and as such, there is no real way to enforce that they hold. In this paper we describe a system which allows the user to write down type class … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2

Citation Types

0
2
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
3
1

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(2 citation statements)
references
References 18 publications
0
2
0
Order By: Relevance
“…On the topic of interfaces (type classes) and their laws there is related work in specifying (Jansson & Jeuring, 2002), rewriting (Peyton Jones et al, 2001), testing (Jeuring et al, 2012), and proving (Arvidsson et al, 2019) type class laws in Haskell. The equality challenges here are often related to the semantics of nontermination as described in the Fast and Loose Reasoning paper (Danielsson et al, 2006).…”
Section: Related Workmentioning
confidence: 99%
“…On the topic of interfaces (type classes) and their laws there is related work in specifying (Jansson & Jeuring, 2002), rewriting (Peyton Jones et al, 2001), testing (Jeuring et al, 2012), and proving (Arvidsson et al, 2019) type class laws in Haskell. The equality challenges here are often related to the semantics of nontermination as described in the Fast and Loose Reasoning paper (Danielsson et al, 2006).…”
Section: Related Workmentioning
confidence: 99%
“…On the topic of interfaces (type classes) and their laws there is related work in specifying (Jansson & Jeuring, 2002), rewriting (Peyton Jones et al, 2001), testing (Jeuring et al, 2012) and proving (Arvidsson et al, 2018) type class laws in Haskell. The equality challenges here are often related to the semantics of non-termination as described in the Fast and Loose Reasoning paper (Danielsson et al, 2006).…”
Section: Related Workmentioning
confidence: 99%