title: the specs2 beRight matcher is not type-checked - is there an equivalent one that is?
body: <p>Specs2 has these Either matchers:</p>
  <pre class="lang-scala prettyprint-override"><code>private[specs2]
  trait EitherBaseMatchers {
  
    def beRight[T](t: ValueCheck[T]) = RightCheckedMatcher(t)
    def beRight[T](implicit p: ImplicitParam = implicitParameter) = use(p)(new RightMatcher[T])
  
    def right[T : Diffable](t: T) = beRight(ValueChecks.valueIsTypedValueCheck(t))
    def right[T](t: ValueCheck[T]) = beRight(t)
    def right[T](implicit p: ImplicitParam = implicitParameter) = beRight(p)
  </code></pre>
  <p>So, <code>beRight</code> is not type-checked: how do I use the apparently type-checked ones (using Diffable I guess)?</p>
  <p>P.S. of course I am aware of <code>must_===</code>, <code>beLike</code> and so on, that isn't the issue.</p>