English
Related papers

Related papers: A simpler encoding of indexed types

200 papers

We consider type inference for guarded recursive data types (GRDTs) -- a recent generalization of algebraic data types. We reduce type inference for GRDTs to unification under a mixed prefix. Thus, we obtain efficient type inference.…

Programming Languages · Computer Science 2007-05-23 Peter J. Stuckey , Martin Sulzmann

Dependently typed programming languages allow sophisticated properties of data to be expressed within the type system. Of particular use in dependently typed programming are indexed types that refine data by computationally useful…

Logic in Computer Science · Computer Science 2015-07-01 Robert Atkey , Patricia Johann , Neil Ghani

First class type equalities, in the form of generalized algebraic data types (GADTs), are commonly found in functional programs. However, first-class representations of other relations between types, such as subtyping, are not yet directly…

Programming Languages · Computer Science 2019-05-17 Jeremy Yallop , Stephen Dolan

Graphs are a generalized concept that encompasses more complex data structures than trees, such as difference lists, doubly-linked lists, skip lists, and leaf-linked trees. Normally, these structures are handled with destructive assignments…

Programming Languages · Computer Science 2022-09-13 Jin Sano , Naoki Yamamoto , Kazunori Ueda

The expression problem describes a fundamental tradeoff between two types of extensibility: extending a type with new operations, such as by pattern matching on an algebraic data type in functional programming, and extending a type with new…

Programming Languages · Computer Science 2025-11-21 Bohdan Liesnikov , David Binder , Tim Süberkrüb

Recursive algebraic data types (term algebras, ADTs) are one of the most well-studied theories in logic, and find application in contexts including functional programming, modelling languages, proof assistants, and verification. At this…

Logic in Computer Science · Computer Science 2018-01-09 Hossein Hojjat , Philipp Rümmer

Design patterns are distilled from many real systems to catalog common programming practice. However, some object-oriented design patterns are distorted or overly complicated because of the lack of supporting programming language constructs…

Programming Languages · Computer Science 2019-06-03 Gerald Baumgartner , Konstantin Läufer , Vincent F. Russo

It is well-known that GADTs do not admit standard map functions of the kind supported by ADTs and nested types. In addition, standard map functions are insufficient to distribute their data-changing argument functions over all of the…

Logic in Computer Science · Computer Science 2022-03-29 Patricia Johann , Pierre Cagne

In this paper we describe how to leverage higher-order unification to type check a dependently typed language with meta-variables. The literature usually presents the unification algorithm as a standalone component, however the need to…

Programming Languages · Computer Science 2016-10-03 Francesco Mazzoli , Andreas Abel

This paper introduces a simple type system for combinatory logic in which combinators have at most one type, whose polymorphism is revealed by application. The combinatory types exactly describe the structure of their values, which may be…

Logic in Computer Science · Computer Science 2026-04-15 Barry Jay , Johannes Bader

We adapt the technique of type-generic programming via descriptions pointing into a universe to the domain of typed languages with binders and variables, implementing a notion of "syntax-generic programming" in a dependently typed…

Programming Languages · Computer Science 2018-04-03 Gergő Érdi

Higher inductive types are inductive types that include nontrivial higher-dimensional structure, represented as identifications that are not reflexivity. While work proceeds on type theories with a computational interpretation of univalence…

Programming Languages · Computer Science 2018-08-28 Paventhan Vivekanandan

Within dependently typed languages, such as Idris, types can depend on values. This dependency, however, can limit the collection of items in standard containers: all elements must have the same type, and as such their types must contain…

Programming Languages · Computer Science 2018-08-29 Jan de Muijnck-Hughes

Datatype-generic programming increases program abstraction and reuse by making functions operate uniformly across different types. Many approaches to generic programming have been proposed over the years, most of them for Haskell, but…

Programming Languages · Computer Science 2012-02-15 José Pedro Magalhães , Andres Löh

In a Systems Engineering setting, various models are produced using a variety of methods and tools. Focusing on a type of models -- called descriptive models -- which we shall describe, we argue that, while the clarity and precision of…

Systems and Control · Electrical Eng. & Systems 2022-07-29 Freddy Kamdem Simo , Dominique Ernadote , Dominique Lenne

Sound exhaustiveness checking of pattern-matching is an essential feature of functional programming languages, and OCaml supports it for GADTs. However this check is incomplete, in that it may fail to detect that a pattern can match no…

Programming Languages · Computer Science 2017-02-09 Jacques Garrigue , Jacques Le Normand

Designing programming languages that enable intuitive and safe manipulation of data structures is a critical research challenge. Conventional destructive memory operations using pointers are complex and prone to errors. Existing type…

Programming Languages · Computer Science 2026-01-21 Jin Sano , Naoki Yamamoto , Kazunori Ueda

Relational parametricity was first introduced by Reynolds for System F. Although System F provides a strong model for the type systems at the core of modern functional programming languages, it lacks features of daily programming practice…

Logic in Computer Science · Computer Science 2024-11-04 Pierre Cagne , Patricia Johann

Generalised algebraic theories (GATs) allow multiple sorts indexed over each other. For example, the theories of categories or Martin-L{\"o}f type theories form GATs. Categories have two sorts, objects and morphisms, and the latter are…

Programming Languages · Computer Science 2026-01-28 Samy Avrillon , Ambrus Kaposi , Ambroise Lafont , Niyousha Najmaei , Johann Rosain

In dependently typed programming, proofs of basic, structural properties can be embedded implicitly into programs and do not need to be written explicitly. Besides saving the effort of writing separate proofs, a most distinguishing and…

Programming Languages · Computer Science 2021-03-09 Hsiang-Shang Ko
‹ Prev 1 2 3 10 Next ›