scalaz/scalaz — pull request #645 by retronym (2014-02-12 21:29:39+00:00)
Title: Account for tighter definition of private in Scala 2.11.0-SNAPSHOT

SI-7475 fixed a hole in the the compiler, which does not allow:

class C {
private def foo: Any = 0
def test(d: D) = d.foo
}

class D extends C

This was in line with:

> The private modifier can be used with any definition or declaration
> in a template. Such members can be accessed only from within the
> directly enclosing template and its companion module or companion
> class (§5.4). They are not inherited by subclasses,

Two choices here to comply: we could either ascribe to `==>[A, B]`,
which does have the member, or make it protected so it will be a
member of the subclass. I chose the latter in this commit.

Review by @larsrh