Honestly, I prefer the options has over the ordered arguments.  There isn't an obvious natural ordering.  (Compare that to something like `Date.new(2014, 2, 4)` where the ordering of the arguments is extremely obvious).  From the caller, `Differ.new(:color => true)` is preferrable than `Differ.new(true)` -- for the latter, it's unclear what `true` means.  Furthermore, these two values are options (not data members like what you get with a struct or value object) and these just happen to be the two currently supported options.  In the future we may gain more.  An options hash sets us up better for the future as it will easily flex to support new options.  This won't:

``` ruby
def initialize(colour = false, &block)
end
```