You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Another case to handle is a student adding a parameter to a type: data T x = A -> data T x y = A.
Note that any fresh parameter is, of course, initially unused.
We may want an easy way to allow making a type more or less polymorphic. e.g. converting between data IntList = Empty | Cons Int IntList and data List a = Empty | Cons a (List a).
Note also that if we add or remove parameters, we change a type's kind, and will need to update other typedefs which depend on it.
With #401 being closed, I will use this issue to also track deletion of parameters.
The text was updated successfully, but these errors were encountered:
Like #401, I forgot to come back to this issue when this was partially implemented in (the somewhat mis-titled) #1063, adding support for these edits in unused types.
For supporting used types, we need to consider how to fix up type-level expressions where the kind of a type has changed. It might be that this kind/type case is not significantly harder than the already-implemented type/term case. We just have not yet attempted to enumerate all the possible interactions in the manner of #267. Note that when we do so, we should consider deletion of parameters (which overlaps with #401).
Also, note that while the opening comment talks only about adding and removing params, we also support editing the kinds of parameters (#1095), and need to consider how to handle these changes for in-use types.
We also need some unit tests. AddTypeParam and DeleteTypeParam do not appear anywhere in the test suite.
From "not in spec" section of #267:
With #401 being closed, I will use this issue to also track deletion of parameters.
The text was updated successfully, but these errors were encountered: