Nathan Faubion

Results 282 comments of Nathan Faubion

I'm suggesting that: * The compiler already guarantees comments for the module header (It's not actually clear at all if this _is_ the case, since the annotations type it emits...

Thanks! This is an easy bit of hygiene to forget.

I'm assuming the top-level special case is to avoid turning ``` foo = { a: let x = ... in bar x } ``` into ``` foo = let x...

Can you remind why this is specifically done in eval? Is this only because of recursive eval? In the past I asked if we could unify let floating into a...

FWIW, I think the main reason why we couldn't do all floating in eval is because `evalAssocLet` is not recursive. It only floats out the immediate let, rather than recursively...

> Obv this example would get inlined anyway but imagine that it didn't and the optimizer chose let floating. This approach, with the newly minded recursive evalAssocLet, makes the let...

I think before moving forward more with this, I myself would like to take some time to understand and reason about eval-based let floating with regards to eliminating the build...

I haven't forgotten about this, and this is something I want to integrate. This PR handles the top-level flattening of recursive binding groups by encoding information in the name and...

Does `output-es/Main/index.js` exist? Do you have a `Main` module?

This isn't so simple. For example, pattern matching lifts all pattern match bodies into bound lambdas, so something like: ```purescript example = case _ of Left _ -> foo ......