# A simpler encoding of indexed types

In functional programming languages, generalized algebraic data types (GADTs) are very useful as the unnecessary pattern matching over them can be ruled out by the failure of unification of type arguments. In dependent type systems, this is usually called indexed types and it's particularly useful as the identity type is a special case of it. However, pattern matching over indexed types is very complicated as it requires term unification in general. We study a simplified version of indexed types (called simpler indexed types) where we explicitly specify the selection process of constructors, and we discuss its expressiveness, limitations, and properties.

## Authors

• 3 publications
• ### First-Class Subtypes

First class type equalities, in the form of generalized algebraic data t...
05/16/2019 ∙ by Jeremy Yallop, et al. ∙ 0

• ### Coming to Terms with Your Choices: An Existential Take on Dependent Types

Type-level programming is an increasingly popular way to obtain addition...
11/15/2020 ∙ by Georg Stefan Schmid, et al. ∙ 0

• ### Sealing Pointer-Based Optimizations Behind Pure Functions

Functional programming languages are particularly well-suited for buildi...
03/03/2020 ∙ by Daniel Selsam, et al. ∙ 0

• ### A Type Checking Algorithm for Higher-rank, Impredicative and Second-order Types

We study a type checking algorithm that is able to type check a nontrivi...
11/13/2017 ∙ by Peng Fu, et al. ∙ 0

• ### Towards Taming Java Wildcards and Extending Java with Interval Types

Of the complex features of generic nominally-typed OO type systems, wild...
05/18/2018 ∙ by Moez A. AbdelGawad, et al. ∙ 0

• ### Embedded Pattern Matching

Haskell is a popular choice for hosting deeply embedded languages. A rec...
08/30/2021 ∙ by Trevor L. McDonell, et al. ∙ 0