-
Notifications
You must be signed in to change notification settings - Fork 242
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
Refactor Algebra.Consequences.*
?
#2502
Comments
On further investigation:
So it looks as though the v1.5-and-after refactoring of |
Yup all this analysis sounds sensible. When I first created the |
Badging this now as v3.0, as forming part of perhaps other, larger-scale |
It's rather fun to be seeing better design(s) emerge like this. |
Work on #2563 suggests, at the very least, that these modules be refactored to change the (top-level) parameterisation of |
These modules are structured around:
Base
, depending only on the underlyingCarrier
setA
, whose properties make explicit a dependency on a(n equality) relation_≈_ : Rel A ℓ
;Setoid
, depending on aSetoid
, giving rise to a relation as inBase
, but with theIsEquivalence
/Reasoning
properties in scope;Propositional
, essential beingSetoid
instantiated toRelation.Binary.PropositionalEquality.Properties.setoid A
and are used in various places to augment the signature of both specific
Algebra.Structures
(esp.IsGroup
,Is*Ring*
), and also variousAlgebra.Construct.*
.@Taneb 's recent #2499 draws attention to the fact that this organisation privileges
Bundle
dSetoid
s over their underlyingRelation.Binary.Structures.IsEquivalence
fields... and thus violates the (implicit) dependency restriction ofStructures
only on otherStructures
, and not onBundles
...So: as a
hypothetical-rewrite
orv3.0
refactoring, we should (perhaps!?) consider refactoring to ... sort this out. Discussion welcome!UPDATED: similarly, the
Relation.Binary.Reasoning
modules depend on the underlyingBundle
, and then delegate to the associatedStructure
via imports of lower-levelSingle
andDouble
modules... and hence impactsAlgebra.Consequences
, via importingRelation.Binary.Reasoning.Setoid
etc. so to really unpick the dependencies might involve a larger scale refactoring?Similarly,
Algebra.Properties.*
depend on the associatedBundle
(which seems reasonable?), and drawing clear lines betweenConsequences
andProperties
seems to be a design choice for which... the issues aren't entirely clear?The text was updated successfully, but these errors were encountered: