emitMain
  :: (Monad p1, Monad p2, Monad p3)
  => CFG
  -> EmitCFGType r w p1 p2 p3 tc
emitMain g kn emitter delay12 =
  mkMultiPassMain
    (return ())
    (\() -> knot3 kn (emitNodes emitter delay12 g))
    (\() -> getResult emitter)
emitMain
  :: (Monad p1, Monad p2, Monad p3)
  => CFG
  -> EmitCFGType r w p1 p2 p3 tc
emitMain g kn emitter delay12 =
  mkMultiPassMain
    (return ())
    (\() -> knot3 kn (emitNodes emitter delay12 g))
    (\() -> getResult emitter)
emitMain g kn emitter delay12 =
  mkMultiPassMain
    (return ())
    (\() -> knot3 kn (emitNodes emitter delay12 g))
    (\() -> getResult emitter)