Open
Description
I'm going to halt for splitting the func dialect for now - splitting call/invoke
into an independent dialect is simple, splitting lambda out of func is not - it's part of the function syntax in Python so you cannot really do the split, but instead creating two dialects (one dialect allows nested function, one dialect doesn't).
I don't think we have a use case to restrict nested functions and function calls except for iQuHack at the moment. So let's just assert that in the validation for iQuHack analysis.
If someone has a new use case, feel free to contribute a new dialect that restricts nested functions with a different lowering rule.