package singleton.ops

import org.scalacheck.Properties
import singleton.TestUtils._

class ReverseSpec extends Properties("Reverse") {
  property("abc.reverse == cba") = wellTyped {
    def reverse[P1 <: XString](implicit op : Reverse[P1]) : op.Out{} = op.value
    val r : W.`"cba"`.T = reverse[W.`"abc"`.T]
  }

  property("abc.reverse.reverse == abc") = wellTyped {
    def reverse[P1 <: XString](implicit op : Reverse[Reverse[P1]]) : op.Out{} = op.value
    val r : W.`"abc"`.T = reverse[W.`"abc"`.T]
  }
}