Drive de um tipo singleton através de um brickwall

Aqui está uma versão muito condensada:

case class Brickwall[A](otherSide: A)
trait Monoman { def me(m: this.type): Unit }

def test(m: Monoman): Unit = m.me(Brickwall(m).otherSide)

-> error: type mismatch;
 found   : Monoman
 required: m.type

brickwall estúpido não me deixa passar. alguma idéia de como isso pode ser possível? efeitos secretos do túnel da scala? na esperança..

questionAnswers(3)

yourAnswerToTheQuestion