skip to main content
10.1145/2804302acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
Haskell '15: Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell
ACM2015 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP'15: 20th ACM SIGPLAN International Conference on Functional Programming Vancouver BC Canada September 3 - 4, 2015
ISBN:
978-1-4503-3808-0
Published:
30 August 2015
Sponsors:
Next Conference
Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
SESSION: Type Checking
research-article
Improving Haskell types with SMT

We present a technique for integrating GHC's type-checker with an SMT solver. The technique was developed to add support for reasoning about type-level functions on natural numbers, and so our implementation uses the theory of linear arithmetic. ...

research-article
A typechecker plugin for units of measure: domain-specific constraint solving in GHC Haskell

Typed functional programming and units of measure are a natural combination, as F# ably demonstrates. However, encoding statically-checked units in Haskell’s type system leads to inevitable disappointment with the usability of the resulting system. ...

SESSION: Verification
research-article
Reasoning with the HERMIT: tool support for equational reasoning on GHC core programs

A benefit of pure functional programming is that it encourages equational reasoning. However, the Haskell language has lacked direct tool support for such reasoning. Consequently, reasoning about Haskell programs is either performed manually, or in ...

research-article
Formally proving a compiler transformation safe

We prove that the Call Arity analysis and transformation, as implemented in the Haskell compiler GHC, is safe, i.e. does not impede the performance of the program. We formalized syntax, semantics, the analysis and the transformation in the interactive ...

SESSION: Graphics and Distribution
research-article
Bridging the GUI gap with reactive values and relations

There are at present two ways to write GUIs for functional code. One is to use standard GUI toolkits, with all the benefits they bring in terms of feature completeness, choice of platform, conformance to platform-specific look-and-feel, long-term ...

research-article
The remote monad design pattern

Remote Procedure Calls are expensive. This paper demonstrates how to reduce the cost of calling remote procedures from Haskell by using the remote monad design pattern, which amortizes the cost of remote calls. This gives the Haskell community access ...

SESSION: Generics
research-article
Variations on variants

Extensible variants improve the modularity and expressiveness of programming languages: they allow program functionality to be decomposed into independent blocks, and allow seamless extension of existing code with both new cases of existing data types ...

research-article
Modular reifiable matching: a list-of-functors approach to two-level types

This paper presents Modular Reifiable Matching (MRM): a new approach to two level types using a fixpoint of list-of-functors representation. MRM allows the modular definition of datatypes and functions by pattern matching, using a style similar to the ...

SESSION: Monads and Comonads
research-article
Freer monads, more extensible effects

We present a rational reconstruction of extensible effects, the recently proposed alternative to monad transformers, as the confluence of efforts to make effectful computations compose. Free monads and then extensible effects emerge from the ...

research-article
Functional pearl: getting a quick fix on comonads

A piece of functional programming folklore due to Piponi provides Löb's theorem from modal provability logic with a computational interpretation as an unusual fixed point. Interpreting modal necessity as an arbitrary Functor in Haskell, the "type" of ...

SESSION: Type Classes
research-article
Injective type families for Haskell

Haskell, as implemented by the Glasgow Haskell Compiler (GHC), allows expressive type-level programming. The most popular type-level programming extension is TypeFamilies, which allows users to write functions on types. Yet, using type functions can ...

research-article
Type families with class, type classes with family

Type classes and type families are key ingredients in Haskell programming. Type classes were introduced to deal with ad-hoc polymorphism, although with the introduction of functional dependencies, their use expanded to type-level programming. Type ...

SESSION: Concurrency and Parallelism
research-article
Déjà Fu: a concurrency testing library for Haskell

Systematic concurrency testing (SCT) is an approach to testing potentially nondeterministic concurrent programs. SCT avoids potentially unrepeatable results that may arise from unit testing concurrent programs. It seems to have received little ...

research-article
Improving implicit parallelism

Using static analysis techniques compilers for lazy functional languages can be used to identify parts of a program that can be legitimately evaluated in parallel and ensure that those expressions are executed concurrently with the main thread of ...

SESSION: Probabilistic and Linear Programming
research-article
Practical probabilistic programming with monads

The machine learning community has recently shown a lot of interest in practical probabilistic programming systems that target the problem of Bayesian inference. Such systems come in different forms, but they all express probabilistic models as ...

research-article
Embedding a full linear Lambda calculus in Haskell

We present an encoding of full linear lambda calculus in Haskell using higher order abstract syntax. By making use of promoted data kinds, multi-parameter type classes and functional dependencies, the encoding allows Haskell to do both linear type ...

SESSION: Code Generation
research-article
Guilt free ivory

Ivory is a language that enforces memory safety and avoids most undefined behaviors while providing low-level control of memory- manipulation. Ivory is embedded in a modern variant of Haskell, as implemented by the GHC compiler. The main contributions ...

research-article
Type-safe runtime code generation: accelerate to LLVM

Embedded languages are often compiled at application runtime; thus, embedded compile-time errors become application runtime errors. We argue that advanced type system features, such as GADTs and type families, play a crucial role in minimising such ...

Contributors
  • UNSW Sydney

Index Terms

  1. Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell

    Recommendations

    Acceptance Rates

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