This would work, but I think it is a poor solution. I'm gonna use a similar 
example with different names to illustrate why:
    
    
    # myDSL.nim
    macro DSL(body: untyped): untyped = ...
    
    
    Run
    
    
    # wrap.nim
    import myDSL
    DSL:
      include body.nim
    
    
    Run

First, anyone reading or editing `body.nim` will be totally unaware that it is 
being affected by the `DSL` macro until they read `wrap.nim`.

Also, every usage of `body.nim` will need to be annotated with a `DSL:` wrap. 
If, say, `DSL` gets deprecated and its use needs to be removed from the 
project, _each_ usage of `body.nim` needs to get changed.

Because `DSL` is affecting `body.nim` as a white box rather than a black box, 
its usage should be apparent from within `body.nim`.

Reply via email to