Skip to content
Source code accompanying the paper "Leveling Up Dependent Types"
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Leveling Up Dependent Types

Agda source code accompanying the paper (DTP 2013):

Leveling Up Dependent Types - Generic programming over a predicative hierarchy of universes. (Draft)

Code from the paper

The underlying type system

Extra examples of generic functions over indexed types

  • Extras.FixedHierarchy
    • A fixed dependently typed universe with some indexed types in it.
    • Contains examples of applying a generic double over indexed types. Applying generic functions to dependent types changes the result type, prefixing them by Π's that act as "preconditions" that are used to preserve type correctness.
    • Generically double the dependent function `fun and get results out by satisfying its generated preconditions.
    • Generically double the dependent pair `pair and get results out by satisfying its generated preconditions.
  • Extras.FixedHierarchyEverywhere WARNING: CONTAINS OMGBBQ AWESOME!
    • Mostly the same as Extras.FixedHierarchy.
    • Defines the fully-generic mapping combinator every.
    • Apply every to a simple double function, and the double function will be applied to nested values on your behalf!
    • The same fun and pair examples are given, but using the new every combinator.
You can’t perform that action at this time.