| 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).