scalameta/scalameta — pull request #30 by paulp (2014-09-20 18:32:22+00:00)
Title: Fewer options.

After getting my fingers in there a little ways I think you guys are probably already too far down your current road for me to divert the stream. Here is a changeset with perhaps symbolic relevance.

The things which I want to change are difficult to change, for the exact reason I would have avoided them in the first place: they make different things appear the same, so that working with a subset of them is a tedious manual process of picking out each one. Every Option[A] looks like every other Option[A] (and every None definitely looks like every None) so if you want to encode the optionality within the type instead of externally to it you are forced to manipulate every call site. Implicits can potentially stave off some of the pain, but only in the construction direction: the pattern matcher will not apply an implicit to a None pattern and so those are all errors.

It's tedious work I could conceivably do, but the motivation isn't there.