Remove unused combiners and Fix weak return value of functions

The combiners introduced unnecessary dependencies that could lead to cycles in the directed graph

The weak return value of functions means if a function returned None implicitly (because it ended with a For which would always return), we have to make sure that that None is weak, because if the other return value  was weak, problem!