[Agda] no-eta-equality

Sergei Meshveliani mechvel at botik.ru
Mon Sep 26 11:33:25 CEST 2016


People,
I am trying to use the  no-eta-equality  key in order to reduce space
eagerness of the type checker.

And there arise several questions.

1. Currently the project is successfully type-checked by
   agda $agdaLibOpt +RTS ... -RTS TypeCheckAll.agda

Now, I set  {-# OPTIONS --no-eta-equality #-} 
to the head of each .agda file.

Then, several files are type-checked, and others are not. 
Is this a bug in Agda? 

2. Does the above {-# OPTIONS --no-eta-equality #-} apply only to
records, or to all functions?

3. I understand eta-equality as that Agda converts 
   lambda x.(f x) --> f,  everywhere where x does not occur in the
lambda term f
-- is Agda so?   
Also record is internally related to a lambda term, where the above x is
matched against the record labels
-- is this so?

4. In my program,  Semigroup, Group, Ring ... (many of them) are records
in which one structure is often a field value for another structure.
Do I need to set  --no-eta-equality  not to the whole files but
individually to each record declaration of Semigroup, Group, Ring ...,
and not to touch other parts?

Thanks,

------
Sergei



More information about the Agda mailing list