Paul Stansifer
Paul Stansifer
This comes up when implementing a function application macro and trying to use it on a function with a generic type, so this is blocking making any good example languages....
In order to use generics, we need subtyping. So an `apply` macro, instead of demanding that the function be of type [I -> O], should demand that it be a...
When we assemble a `Node` from its constituent `Ast`, we should check to see if any `Named` names in its grammar are absent from the parse result so far. If...
The current Unseemly syntax is ad-hoc, and it's a mess. But maybe the syntax for syntax operations, while weird, is okay. I think the thing I keep on tripping over...
`dotdotdot` should be able to go anywhere a repetition can happen. For example, it should be possible to write ``` '[Expr | .[ ...[,a, >> ,[a], : Int ]... ....
Currently `Cell` is a subtype of `forall T . Cell`. That's okay. But also `Cell` is a subtype of `Cell`. That's bad, because you can't actually put a generic sequence...
Currently, the web IDE assumes that you're writing in Unseemly (and `import` won't work, besides). Allow the generation of web IDEs that assume a specific language. This should only ("only")...
I think it might be as simple as capturing the type environment at syntax extension time and substituting.
Currently, `ast_walk` freshens every `Ast` element (maybe we should call the different kinds of `Ast` "nodule"s?) it traverses. This is usually unnecessary! For example, if one is evaluating or typechecking...
The whole "we need to look at the node that contains us to figure out whether we're being literal" is ugly, especially the corner case for what to do if...