Write a Blog >>
ICFP 2018
Sun 23 - Sat 29 September 2018 St. Louis, Missouri, United States
Thu 27 Sep 2018 11:30 - 12:00 at Illinois Central - Session 1 Chair(s): Michael D. Adams

Mathematical concepts such as monads, functors, monoids, and semigroups
are expressed in Haskell as typeclasses. Therefore, in order to exploit
relations such as “every monad is a functor”, and “every monoid is
a semigroup”, we need to be able to also express relations between
typeclasses.

Currently, the only way to do so is using superclasses. However,
superclasses can be problematic due to their closed nature. Adding a
superclass implies modifying the subclass’ definition, which is either
impossible if one does not own such code, or painful as it requires
cascading changes and the introduction of boilerplate throughout the
codebase.

In this article, we introduce class morphisms, a way to relate
classes in an open fashion, without changing class definitions. We
show how class morphisms improve the expressivity, conciseness, and
maintainability of code. Further, we show how to implement them while
maintaining canonicity and coherence, two key properties of the Haskell
type system. Extending a typechecker with class morphisms amounts to
adding an elaboration phase and is an unintrusive change. We back this
claim with a prototype extension of GHC.

Thu 27 Sep

Displayed time zone: Guadalajara, Mexico City, Monterrey change

10:30 - 12:00
Session 1Haskell at Illinois Central
Chair(s): Michael D. Adams University of Utah
10:30
30m
Talk
AutoBench: Comparing the Time Performance of Haskell Programs
Haskell
Martin A. T. Handley University of Nottingham, UK, Graham Hutton University of Nottingham, UK
DOI
11:00
30m
Talk
Autobahn 2.0: Minimizing Bangs while Maintaining Performance (System Demonstration)
Haskell
Marilyn Sun Tufts University, USA, Kathleen Fisher Tufts University, USA
DOI
11:30
30m
Talk
Improving Typeclass Relations by Being Open
Haskell
Guido Martínez CIFASIS-CONICET, Argentina, Mauro Jaskelioff CONICET, Argentina, Guido De Luca Universidad Nacional de Rosario, Argentina
DOI