ddc-source-tetra-0.4.3.1: Disciplined Disciple Compiler source language.

Safe HaskellNone
LanguageHaskell98

DDC.Source.Tetra.Transform.BoundX

Description

Lifting level-0 deBruijn indices in source expressions.

Level-0 indices are used for both value and witness variables.

Synopsis

Documentation

liftX :: (MapBoundX c l, GXBoundVar l ~ Bound) => Int -> c l -> c l Source #

Wrapper for liftAtDepthX that starts at depth 0.

liftAtDepthX Source #

Arguments

:: (MapBoundX c l, GXBoundVar l ~ Bound) 
=> l 
-> Int

Number of levels to lift.

-> Int

Current binding depth.

-> c l

Lift expression indices in this thing.

-> c l 

Lift debruijn indices less than or equal to the given depth.

class HasAnonBind l => MapBoundX c l where Source #

Minimal complete definition

mapBoundAtDepthX

Methods

mapBoundAtDepthX :: l -> (Int -> GXBoundVar l -> GXBoundVar l) -> Int -> c l -> c l Source #

class HasAnonBind l where Source #

Minimal complete definition

isAnon

Methods

isAnon :: l -> GXBindVar l -> Bool Source #