Results 1 
4 of
4
Simple unificationbased type inference for GADTs
, 2006
"... Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “firstclass phantom types”, are a simple but powerful generalization of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is k ..."
Abstract

Cited by 194 (38 self)
 Add to MetaCart
(Show Context)
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “firstclass phantom types”, are a simple but powerful generalization of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is known to be difficult. Our contribution is to show how to exploit programmersupplied type annotations to make the type inference task almost embarrassingly easy. Our main technical innovation is wobbly types, which express in a declarative way the uncertainty caused by the incremental nature of typical typeinference algorithms.
Wobbly types: type inference for generalised algebraic data types
, 2004
"... Generalised algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “firstclass phantom types”, are a simple but powerful generalisation of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is k ..."
Abstract

Cited by 50 (2 self)
 Add to MetaCart
(Show Context)
Generalised algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “firstclass phantom types”, are a simple but powerful generalisation of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is known to be difficult. It is time to pluck the fruit. Can GADTs be added to Haskell, without losing type inference, or requiring unacceptably heavy type annotations? Can this be done without completely rewriting the alreadycomplex Haskell typeinference engine, and without complex interactions with (say) type classes? We answer these questions in the affirmative, giving a type system that explains just what type annotations are required, and a prototype implementation that implements it. Our main technical innovation is wobbly types, which express in a declarative way the uncertainty caused by the incremental nature of typical typeinference algorithms. 1
Abstract Simple Unificationbased Type Inference for GADTs
"... Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “firstclass phantom types”, are a simple but powerful generalization of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is k ..."
Abstract
 Add to MetaCart
Generalized algebraic data types (GADTs), sometimes known as “guarded recursive data types ” or “firstclass phantom types”, are a simple but powerful generalization of the data types of Haskell and ML. Recent works have given compelling examples of the utility of GADTs, although type inference is known to be difficult. Our contribution is to show how to exploit programmersupplied type annotations to make the type inference task almost embarrassingly easy. Our main technical innovation is wobbly types, which express in a declarative way the uncertainty caused by the incremental nature of typical typeinference algorithms. Categories and Subject Descriptors D.3.3 [PROGRAMMING
Semantics and Syntax for Ordinal Notations and Hierarchies
"... We give a complete description of a class of free infinitary algebras in the category of posets. They are represented as functors to the ordinal\Omega\Gamma One of these algebras is used to define an ordinal notation system based on the simply typed lambda calculus, and prove its soundness. As an ap ..."
Abstract
 Add to MetaCart
We give a complete description of a class of free infinitary algebras in the category of posets. They are represented as functors to the ordinal\Omega\Gamma One of these algebras is used to define an ordinal notation system based on the simply typed lambda calculus, and prove its soundness. As an application the Slow Growing and Hardy hierarchies are described in that calculus. The literature on ordinal notations is already quite extensive. There is a particular class of ordinal notations which is based on the notion of fundamental sequence: a countable ordinal ff is defined in terms of a sequence ( i ) i2! that converges to it. Such notations are especially important for describing hierarchies of numerical functions [Grz53, LW70a, LW70b]. This is due to the operation of diagonalization, which takes a family (f n ) n2N of numerical functions and produces one which is "above" it, i.e. more complex. This operation is similar to the limit of a chain of ordinals, but this is not enough to...