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
These are two distinct concepts, the conflation of which has only led to unnecessary complexity.
For example, spliced holes make sense but not spliced FVs.
Known problems in particular:
Reinserting an extracted binder will not capture a new binder of the same name. Solution: extracted binder should extract a FV with memory of the original binding (instead of extracting a BoundVal and having corresponding holes keep memory of it!). In fact, ideally extracted binders should behave the same as simple holes, except for the fact one can retrieve symbol info from them with the Sym xtor, and one can reinsert them in binder position to propagate annotations and other meta-info (todo).
It is currently not possible to directly pattern-match on free variables, but that can be a useful pattern. For example consider something like case ir"(acc,a) => ${Addition(ir"?acc:String",rest)}" => ... (currently, the inner pattern will extract any string and associate it with acc, and crash because there is no corresponding $ extraction).
The text was updated successfully, but these errors were encountered:
These are two distinct concepts, the conflation of which has only led to unnecessary complexity.
For example, spliced holes make sense but not spliced FVs.
Known problems in particular:
Sym
xtor, and one can reinsert them in binder position to propagate annotations and other meta-info (todo).case ir"(acc,a) => ${Addition(ir"?acc:String",rest)}" => ...
(currently, the inner pattern will extract any string and associate it withacc
, and crash because there is no corresponding$
extraction).The text was updated successfully, but these errors were encountered: