The specification of a class in Haskell often starts with stating, in comments, the laws that should be satisfied by methods defined in instances of the class, followed by the type of the methods of the class. This paper develops a framework that supports testing such class laws using QuickCheck. Our framework is a light-weight class law testing framework, which requires a limited amount of work per class law, and per datatype for which the class law is tested. We also show how to test class laws with partially-defined values. Using partially-defined values, we show that the standard lazy and strict implementations of the state monad do not satisfy the expected laws
We study the type inference problem for a system with type classes as in the functional programming ...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
Currently, Java is one of the most used programming language, being adopted in many large projects, ...
The specification of a class in Haskell often starts with stating, in comments, the laws that should...
This paper describes two Haskell libraries for property-based testing. Following the lead of QuickCh...
Type classes in Haskell are used to implement ad-hoc polymorphism, i.e. a way to ensure both to the ...
Software testing is an important part of the software development process. Testing comes in many fla...
QuickCheck is a tool which aids the Haskell programmer in formulating and testing properties of prog...
Software testing is an important part of the software devel- opment process. Testing comes in many ...
QuickCheck is a tool which aids the Haskell programmer in formulating and testing properties of prog...
Black-box property based testing tools like QuickCheck allow developers to write elegant logical spe...
We describe the implementation of a type checker for the functional programming language Haskell tha...
We present a proof rule and an effective tactic for proving properties about Haskell type classes by...
Data types are the core of many applications, and libraries offering implementations of data types s...
This paper presents an extension to standard Hindley-Milner type checking that allows constructors i...
We study the type inference problem for a system with type classes as in the functional programming ...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
Currently, Java is one of the most used programming language, being adopted in many large projects, ...
The specification of a class in Haskell often starts with stating, in comments, the laws that should...
This paper describes two Haskell libraries for property-based testing. Following the lead of QuickCh...
Type classes in Haskell are used to implement ad-hoc polymorphism, i.e. a way to ensure both to the ...
Software testing is an important part of the software development process. Testing comes in many fla...
QuickCheck is a tool which aids the Haskell programmer in formulating and testing properties of prog...
Software testing is an important part of the software devel- opment process. Testing comes in many ...
QuickCheck is a tool which aids the Haskell programmer in formulating and testing properties of prog...
Black-box property based testing tools like QuickCheck allow developers to write elegant logical spe...
We describe the implementation of a type checker for the functional programming language Haskell tha...
We present a proof rule and an effective tactic for proving properties about Haskell type classes by...
Data types are the core of many applications, and libraries offering implementations of data types s...
This paper presents an extension to standard Hindley-Milner type checking that allows constructors i...
We study the type inference problem for a system with type classes as in the functional programming ...
Haskell has a rich type system with various complementary, interacting and overlapping features. In ...
Currently, Java is one of the most used programming language, being adopted in many large projects, ...