| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Agda.TypeChecking.EtaContract
Description
Compute eta short normal forms.
Synopsis
- data BinAppView
- binAppView :: Term -> BinAppView
- etaContract :: (MonadTCEnv m, HasConstInfo m, HasOptions m, TermLike a) => a -> m a
- etaOnce :: (MonadTCEnv m, HasConstInfo m, HasOptions m) => Term -> m Term
- etaCon :: (MonadTCEnv m, HasConstInfo m, HasOptions m) => ConHead -> ConInfo -> Elims -> (QName -> ConHead -> ConInfo -> Args -> m Term) -> m Term
- etaLam :: (MonadTCEnv m, HasConstInfo m, HasOptions m) => ArgInfo -> ArgName -> Term -> m Term
Documentation
binAppView :: Term -> BinAppView Source #
etaContract :: (MonadTCEnv m, HasConstInfo m, HasOptions m, TermLike a) => a -> m a Source #
Contracts all eta-redexes it sees without reducing.
etaOnce :: (MonadTCEnv m, HasConstInfo m, HasOptions m) => Term -> m Term Source #
Arguments
| :: (MonadTCEnv m, HasConstInfo m, HasOptions m) | |
| => ConHead | Constructor name |
| -> ConInfo | Constructor info |
| -> Elims | Constructor arguments |
| -> (QName -> ConHead -> ConInfo -> Args -> m Term) | Eta-contraction workhorse, gets also name of record type. |
| -> m Term | Returns |
If record constructor, call eta-contraction function.
Arguments
| :: (MonadTCEnv m, HasConstInfo m, HasOptions m) | |
| => ArgInfo | Info |
| -> ArgName | Name |
| -> Term | |
| -> m Term |
|
Try to contract a lambda-abstraction Lam i (Abs x b).