Comments (4)
Should mod
forms work like module*
? That is, should they be expanded after the enclosing Racket module has been expanded and elaborated? Or should they be more like module
submodules, which are expanded as soon as they are discovered?
from hackett.
They currently work like module
and not module*
. Modules cannot refer to definitions from their enclosing modules, but definitions in an outer module can refer to submodules.
from hackett.
PS:
Even with a form that behaved more like module*
, the mod
form should ideally stay the same. It wouldn't be (def-module M (mod ....))
vs. (def-module M (mod* ....))
, it would be:
(def-module M (mod ....))
vs.
(def-module* M (mod ....))
With the same mod
form for both.
I'm imagining that the def-module
form would expand right away while def-module*
form would have its expansion delayed until after everything else in the enclosing module is expanded. And whether it's within one or the other, the mod
form would want to do all the passes of the elaborator at that time.
from hackett.
Would you rather have a function like call-with-no-elaborate-pass
, or an optional extra argument like (local-expand+elaborate .... #:reset? #true)
?
from hackett.
Related Issues (20)
- Instance chaining seems to fail HOT 1
- Proposal: a macro DSL based on bidirectional type checking HOT 2
- Slow typechecking due to linear search in type context HOT 3
- issue with polymorphic values?
- Functor Instance Misbehaving HOT 3
- Rigid vars allowed to escape their scope HOT 3
- Expression type annotation vs. Declaration type annotation HOT 6
- Case pattern expanders? HOT 3
- #%elaborate-top combined with begin HOT 2
- Matching on the result of a constrained type variable
- Infinite loop while resolving instances HOT 3
- scribble/manual HOT 1
- Internal error when typechecking malformed `forall` clause HOT 3
- Auto-derived Show instance not terminating HOT 2
- Indendation sensitivity HOT 1
- Please add the `racket` topic to this repo
- Current Status HOT 2
- Thank you for the docs!
- README doc link 404's HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hackett.