Adds Effects and uses it to control eagerness
Made Effects it's own type
Made some good progress, but still failing on one case in LegacyPipeBuilderTest.scala