Might be unnecessary with further changes, but I would argue (in subsequent commits) that

1.  `@output`, as set in emit, should never be nil
2.  You can nicely check for zero length output with `@output.size.zero?`