Agda-2.5.2: A dependently typed functional programming language and proof assistant

Safe Haskell | None
Language | Haskell2010

Agda.Compiler.Treeless.DelayCoinduction

Description

Inserts an additional lambda into all coinductive auxiliary definitions (== target type Inf XX). E.g.:

f : A -> B -> C -> Inf A f = a b c -> body is converted to f = a b c _ -> body

Assumes that flat/sharp are implemented as follows:

flat = x -> x sharp = x -> x ()

# Documentation

delayCoinduction :: TTerm -> Type -> TCM TTerm #

transform :: CoinductionKit -> TTerm -> Type -> TCM TTerm #

outputIsInf :: Maybe CoinductionKit -> Type -> TCM Bool #

underLambdas :: Int -> (TTerm -> TTerm) -> TTerm -> TTerm #