Replies: 1 comment 2 replies
-
@shriram on Mar 20, 2018 Radical question. Is it time to rethink a design (especially if we might reimplement the language using Stopify, etc.) that gets rid of brands entirely? Brands feel like a weird feature in that they are prominent primarily by their absence: you suddenly say "huh?" and then, if you know enough, realize "Oh, the brands got dropped". Can you say more about the experience in BS:Reactive? That seems like a good testing ground for what should happen. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
(migrated from https://github.com/orgs/brownplt/teams/pyret/discussions/8)
This issue is still open:
#835
However, it seems we want type support for it:
#1255
We need a clear decision here. I propose:
If a field that already exists is updated on a data value, we check the annotations and construct a new instance with the same brands. This is the most useful, and actually something that could clean up a lot of Reactive student programs that end up with lots of fields in structures (x/y values for the dog and the cat and the player, etc)
If a field that isn't present is updated, we need a call on whether it is an error or it drops its brands and produces a plain record. I don't know which programs we have that we want the extension behavior for. I'm of the opinion “just because we can, don't” and leave it as an error until we have a compelling use case for it. It's much better to leave it as an error and think about supporting it in the future than to try to fix semantics first.
Beta Was this translation helpful? Give feedback.
All reactions