
@pocmatos I think raco pkg config
will list them

@timmstelzer has joined the channel

@pocmatos you just want raco pkg config catalogs

@pocmatos There are some small examples of Nanopass here: https://github.com/nanopass/nanopass-framework-racket/tree/master/tests

@samth thanks

@soegaard2 great.

are streams in racket memoized?

out of curiosity, i was re-reading streams in SICP

@cosmez yes, streams are memoized: https://stackoverflow.com/questions/26478167/do-racket-streams-memoize-their-elements/26481874

assuming you mean streams from racket/stream

yes, thanks!

hey, maybe you can add an extra precondition to bind
to say "f
has a unconstrained domain, but whatever the domain is it should (procedure-arity-includes? f (length Vs))

@mflatt Do you know/remember why the local-expand
stop list makes an exception when it only contains the identifier module*
? It seems like this special case was added in Racket 5.3, when submodules were added, but the submodules paper doesn’t seem to touch upon that detail.

@samuel.falcon.fdez has joined the channel

@lexi.lambda The identifier module*
is allowed by itself because (1) that works out, since nothing in a module can rely on the content of a submodule written with module*
, and (2) something needed this “everything but module*
” mode — looks like it was probably Typed Racket.

I really only asked because I ran into a situation where I needed it today, and I was curious if the reason I needed it was the reason it was initially added or if it was coincidental.

I wonder if @samth knows why it’s necessary in TR.

TR needs to expand, typecheck, and transform a module body before the module is potentially imported into a module*
submodule.

That makes sense. It wasn’t the reason I needed it today, though. I had an issue where re-expanding a module*
submodule a second time would add the module*
’s scopes to syntax that had already been expanded in that module, which ended up causing ambiguous binding errors when it was added to syntax that came from uses of quote-syntax
in the enclosing module (and therefore had both scopes after expansion).