-
Notifications
You must be signed in to change notification settings - Fork 245
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
[DRY] Reconciling the indices of IsX
with those of the corresponding RawX
#2252
Comments
This is yet another form of the eternal bundled / unbundled question. The correct answer is: don't choose, they are equivalent. Pragmatically, that remains a non-answer because, in Agda, this equivalence can only be witnessed tediously on a case-by-case basis. Unfortunately, I have no idea what the actual ergonomics of each choice is. This would need a great big (costly) experiment, and it doesn't seem to me that we can decide this just as a thought experiment. In theory, I personally like to group things together more. But that's at the "gut feel" level rather than at the "let's make this the design NOW" level. |
Well put, and so I guess I defer to your wise insight. Sigh... That said, if there were an agency willing to fund the costly experiment, ... or indeed, whether your remark is enough to encourage a zealot to pursue it for its own sake anyway... ;-) (best not, but the devil on my shoulder, etc.) And... I don't think I was proposing it as THE design, but as with |
I've also wondered about this from time to time, and I think it's mainly a swings and roundabouts issues. As you say, one of advantages is that you can import I agree with @JacquesCarette's points as well that this may be a language design question. If no one objects, then I might add this to the |
Well look at that, a Hmm, I'd be tempted to start a page on the Wiki also collecting language changes that we library writers would really like to see. |
One argument against punting this to the indefinite future with And the second: consistency/uniformity. We index homomorphisms between |
Notes to self (and the future): currently, What happens if we try to add (structures and bundles for) essentially algebraic signatures? Suggest introduce Suggest signatures be parametrised by their |
Amusingly, I find this all too abstract to figure out whether I agree with you or not. Could you give a very concrete example of each issue? Pick your favourite structures and derived operation to illustrate what you mean? I do agree that the second inconsistency does seem to be something we ought to fix.
Agree on both points. |
The current standing examples of |
To try to put my finger on it more precisely: #2251 is forced to establish the
Now, I suppose it is (perhaps) a moot point whether we regard |
Also: extensibility |
Rebadged as a [DRY] issue |
IsX
with those of the corresponding RawX
IsX
with those of the corresponding RawX
Looking again at
README.Design.Hierarchies
,Algebra.{Module.}Structures
andAlgebra.{Module.}Bundles.Raw
, I can't help wondering at the mismatch in indices vs. fieldnames to the variousIsX
s, with the correspondingRawX
(although this may simply be an artefact of parametrisation of theAlgebra.Structures
module), but my main question is:IsX
records not indexed over a single underlyingRawX
parameter? (this may be historical...)Apologies if my ignorance of the history of, and discussion on, the associated issues/PRs obscures what otherwise may be glaringly obvious to those more expert than me!
E.g., to define
IsMagmaR
in this style, and show it gives rise to a 'usual'IsMagma
(andMagma
! because the existing hierarchy permits this... so a genuine replacement, rather than enhancement, of the existing hierarchy would still requireIsX
andX
to be separated; but here the existing concreteRaw
bundles in egData.Nat
could be generated using this extension instead...) instance etc.:Is it because to define any instance of a hypothetical
IsMagmaR rawMagma
one first has to (already have)open RawMagma rawMagma
to be able to define the fields? Is this such a high price to pay?The above may be a con, but pro might be not having to redefine in
RawX
the manifest operation fields defined inIsX
... cf. #2251Moreover, redefining the bundle
X
takes on the satisfyingly genericX = Σ RawX IsX
form:The text was updated successfully, but these errors were encountered: