I'm not really a fan of using `Struct` for a class like this.  I like using `Struct` when I want value object semantics, but these formatters aren't really value objects.  If you were to use `Struct`, I'd want it to use the constant assignment/block form so as not to create the intermediate unnecessary superclass:

``` ruby
DeprecationFormatter = Struct.new(:deprecation_stream, :summary_stream) do
  # more method defs go here
end
```

...but I still think I'd prefer not to use a struct here.  For more on the reasons, see this recent blog post:

http://thepugautomatic.com/2013/08/struct-inheritance-is-overused/