New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Options used for different modules must be consistent with each other, and options used when loading an interface must be consistent with those used when the interface was created #2487
Comments
|
Doesn't seem to work. |
|
Minimal test case: {-# OPTIONS --safe #-}
module Issue2487 where
open import Issue2487-2module Issue2487-2 where
postulate A : Set |
|
This is an instance of a more general problem: Agda does not check that options for different modules in the same project are consistent with each other. For instance, one can use
|
|
As noted by @identicalsnowflake (#2515 (comment)) there is an additional problem: when a |
|
There may be some logic for this already, actually, it just seems to be backwards. For example, you may have a |
|
I've added the "false" label, because I assume that one can currently use |
|
Given that this doesn't appear to be an immediate priority, an extra |
@fredrikNordvallForsberg stated that his current implementation activates both when Apparently the implementation also allows |
|
@nad that sounds reasonable, yes. |
Reverts part of commit e134cce as we can now postulate String, Char, Float, Word64 and the coinduction builtins again.
Reverts part of commit e134cce as we can now postulate String, Char, Float, Word64 and the coinduction builtins again.
|
Thanks! |
Most changes are: * adding the sized-types/guardedness OPTIONS to modules using these notions (or importing modules which do) * making sure these sized-types/guardedness OPTIONS come after the --safe one. Also taking care of #603, uncovered thanks to consistency checking and being forced to remove Data.Container.Indexed's dependency to Relation.Binary.HeterogeneousEquality.
Also adds test cases
Most changes are: * adding the sized-types/guardedness OPTIONS to modules using these notions (or importing modules which do) * making sure these sized-types/guardedness OPTIONS come after the --safe one. Also taking care of #603, uncovered thanks to consistency checking and being forced to remove Data.Container.Indexed's dependency to Relation.Binary.HeterogeneousEquality.
Currently, even in a module marked
{-# OPTIONS --safe #-}, you may still import (and use!)primTrustMeand postulates from other modules.It wouldn't bother me if you could import modules not marked as --safe provided they still follow the safe rules, but it seems currently imported modules are totally exempt from these rules.
The text was updated successfully, but these errors were encountered: