vix.ing · top · new · best · stats

Type Classes for Lightweight Substructural Types

2015/02/17 by Edward Gan, Jesse A. Tov, Greg Morrisett
Computer Science · #cs.PL

paper · pdf · doi:10.4204/eptcs.176.4

published as EPTCS 176, 2015, pp. 34-48 · In Proceedings LINEARITY 2014, arXiv:1502.04419

arxiv created 2015/02/17 · arxiv updated 2015/02/18

Abstract

Linear and substructural types are powerful tools, but adding them to standard functional programming languages often means introducing extra annotations and typing machinery. We propose a lightweight substructural type system design that recasts the structural rules of weakening and contraction as type classes; we demonstrate this design in a prototype language, Clamp. Clamp supports polymorphic substructural types as well as an expressive system of mutable references. At the same time, it adds little additional overhead to a standard Damas-Hindley-Milner type system enriched with type classes. We have established type safety for the core model and implemented a type checker with type inference in Haskell.

Citations