Yhc Core with modules that import each other?

Although the nyhc frontend currently doesn't support recursively dependent modules, will Yhc Core or the tools that work with it, present any trouble? For example I was thinking of the possibility of making Jhc be able to compile to Yhc Core (ignoring issues of different sets of primitives). Isaac

Hi
Although the nyhc frontend currently doesn't support recursively dependent modules, will Yhc Core or the tools that work with it, present any trouble?
Shouldn't do. Yhc.Core was designed to support everything.
For example I was thinking of the possibility of making Jhc be able to compile to Yhc Core (ignoring issues of different sets of primitives).
Primitives can be worked around. Types might be harder! The Yhc.Core language generated by Yhc does not have explicit types, but it may have rank-2 types introduced from monad desugaring (and any higher-kinded type classes). It is impossible to infer rank-2 types, and Jhc is quite particular about having full type information, so that may trip you up. Thanks Neil

Neil Mitchell wrote:
Hi
Although the nyhc frontend currently doesn't support recursively dependent modules, will Yhc Core or the tools that work with it, present any trouble?
Shouldn't do. Yhc.Core was designed to support everything.
Good to know.
For example I was thinking of the possibility of making Jhc be able to compile to Yhc Core (ignoring issues of different sets of primitives).
Primitives can be worked around. Types might be harder! The Yhc.Core language generated by Yhc does not have explicit types, but it may have rank-2 types introduced from monad desugaring (and any higher-kinded type classes). It is impossible to infer rank-2 types, and Jhc is quite particular about having full type information, so that may trip you up.
I know Jhc needs type information - I don't think Jhc can _use_ Yhc Core - I was just thinking it might be able to _generate_ it at some point by deleting type information. Now I remember it uses lambda-cube and would only generate efficient (explicit-type-free) yhc-core after its dead code elimination pass (which is how it eliminates types that no values depend on), so it's trickier than I thought, but should probably be doable if I (or anyone) ever gets to work on it. Isaac
participants (2)
-
Isaac Dupree
-
Neil Mitchell