Dependency of Algebra.Properties on Algebra.Bundles or Algebra.Structures? Similarly: Relation.Binary.Reasoning.*
#3046
jamesmckinna
started this conversation in
Design
Replies: 1 comment 1 reply
-
|
This is the eternal "(un)bundling" discussion. My current opinion: in the current Agda, whatever decision is made on this will be sub-optimal. We would be forcing a particular compromise which would always turn out to be uncomfortable for certain cases. Arend has shown the correct way to do this: don't choose. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
At present (v2.x-v3.y transition), we make
Algebra.Bundles.Xthe type of parameter toAlgebra.Properties.XRelation.Binary.Reasoning.*(defined relative toRelation.Binary.Bundles!) for the appropriate sub-bundle of the correspondingX.I think that this is a mistake, because it violates the (implicit?) meta-design principle that
Structuresshould only depend onStructures(cf.README.Design.Hierarchies)Bundlescan depend onStructures,Bundles, andPropertiesPropertiesshould depend only on axiomatisations, ieStructuresMoreover, it seems to have forced us to plumb in a
setoid(Bundle!) manifest field at the very base ofAlgebra.Structuresin order to streamline the ergonomics of being able to doRelation.Binary.Reasoning.Setoidwithin structures (maybe there are no longer instances of this phenomenon, but no reason a priori to forbid it, for extensibility reasons). In like fashion to the above, theReasoningcombinators/syntax only actually depend on theIsEquivalence/IsPreorderaxiomatisation, ie. the underlyingRelation.Binary.Structures.IsX...This strays uncomfortably close to
hypothetical-rewriteterritory, not least because it would have a lot of knock-on consequences wrt module parametrisation, but I think in the end it will be The Right Thing To Do to parameterisePropertiesandReasoning(as a special kind ofproperties!?) onStructures.Related issues/PRs:
IsXwith those of the correspondingRawX#2252Algebra.Structures.IsXandAlgebra.Properties.X#2762Algebra.Properties.X#2804I have the feeling that I, among others, have raised related issues several (many?) times in the past:
Algebra.*APIs...Beta Was this translation helpful? Give feedback.
All reactions