skip to main content
10.1145/3242744acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
Haskell 2018: Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell
ACM2018 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP '18: 23nd ACM SIGPLAN International Conference on Functional Programming St. Louis MO USA September 27 - 28, 2018
ISBN:
978-1-4503-5835-4
Published:
17 September 2018
Sponsors:
Next Conference
Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
SESSION: Testing
research-article
Branching processes for QuickCheck generators

In QuickCheck (or, more generally, random testing), it is challenging to control random data generators' distributions---specially when it comes to user-defined algebraic data types (ADT). In this paper, we adapt results from an area of mathematics ...

research-article
Public Access
A promise checked is a promise kept: inspection testing

Occasionally, developers need to ensure that the compiler treats their code in a specific way that is only visible by inspecting intermediate or final compilation artifacts. This is particularly common with carefully crafted compositional libraries, ...

SESSION: Performance
research-article
AutoBench: comparing the time performance of Haskell programs

Two fundamental goals in programming are correctness (producing the right results) and efficiency (using as few resources as possible). Property-based testing tools such as QuickCheck provide a lightweight means to check the correctness of Haskell ...

short-paper
Autobahn 2.0: minimizing bangs while maintaining performance (system demonstration)

Lazy evaluation has many advantages, but it can cause bad performance. Consequently, Haskell allows users to force eager evaluation at certain program points by inserting strictness annotations, known and written as bangs (!). Unfortunately, manual bang ...

SESSION: Generic Programming
research-article
Generic programming of all kinds

Datatype-generic programming is a widely used technique to define functions that work regularly over a class of datatypes. Examples include deriving serialization of data, equality or even functoriality. The state-of-the-art of generic programming still ...

research-article
Deriving via: or, how to turn hand-written instances into an anti-pattern

Haskell's deriving construct is a cheap and cheerful way to quickly generate instances of type classes that follow common patterns. But at present, there is only a subset of such type class patterns that deriving supports, and if a particular class lies ...

SESSION: Type Classes
research-article
Improving typeclass relations by being open

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 ...

research-article
Coherent explicit dictionary application for Haskell

Type classes are one of Haskell's most popular features and extend its type system with ad-hoc polymorphism. Since their conception, there were useful features that could not be offered because of the desire to offer two correctness properties: ...

SESSION: Type Extensions
research-article
Public Access
Type variables in patterns

For many years, GHC has implemented an extension to Haskell that allows type variables to be bound in type signatures and patterns, and to scope over terms. This extension was never properly specified. We rectify that oversight here. With the formal ...

research-article
The Thoralf plugin: for your fancy type needs

Many fancy types (e.g., generalized algebraic data types, type families) require a type checker plugin. These fancy types have a type index (e.g., type level natural numbers) with an equality relation that is difficult or impossible to represent using ...

SESSION: Pearls
research-article
Ghosts of departed proofs (functional pearl)

Library authors often are faced with a design choice: should a function with preconditions be implemented as a partial function, or by returning a failure condition on incorrect use? Neither option is ideal. Partial functions lead to frustrating run-...

research-article
Theorem proving for all: equational reasoning in liquid Haskell (functional pearl)

Equational reasoning is one of the key features of pure functional languages such as Haskell. To date, however, such reasoning always took place externally to Haskell, either manually on paper, or mechanised in a theorem prover. This article shows how ...

SESSION: Domain Specific Languages
research-article
Rhine: FRP with type-level clocks

Processing data at different rates is generally a hard problem in reactive programming. Buffering problems, lags, and concurrency issues often occur. Many of these problems are clock errors, where data at different rates is combined incorrectly. ...

research-article
Embedding invertible languages with binders: a case of the FliPpr language

This paper describes a new embedding technique of invertible programming languages, through the case of the FliPpr language. Embedded languages have the advantage of inheriting host languages' features and supports; and one of the influential methods of ...

SESSION: Experience Reports
research-article
A high-performance multicore IO manager based on libuv (experience report)

We present a high performance multicore I/O manager based on libuv for Glasgow Haskell Compiler (GHC). The new I/O manager is packaged as an ordinary Haskell package rather than baked into GHC's runtime system(GHC RTS), yet takes advantage of GHC RTS's ...

research-article
Suggesting valid hole fits for typed-holes (experience report)

Type systems allow programmers to communicate a partial specification of their program to the compiler using types, which can then be used to check that the implementation matches the specification. But can the types be used to aid programmers during ...

Contributors

Index Terms

  1. Proceedings of the 11th ACM SIGPLAN International Symposium on Haskell

    Recommendations

    Acceptance Rates

    Overall Acceptance Rate57of143submissions,40%
    YearSubmittedAcceptedRate
    Haskell '14281243%
    Haskell '13331339%
    Haskell '08281346%
    Haskell '03301033%
    Haskell '0224938%
    Overall1435740%