寝てる場合じゃねぇ!(Scala)
Scalaだとコンパイラ騙さなくても言語がサポートする機能でふつーにできるし。
object NoSleep extends App { trait Sleepy[A] { def sleep(n:Long):Unit } implicit val hoge = new Sleepy[Nothing]{ def sleep(n:Long) = println("寝てる場合じゃねぇ!") } def sleep[A:Sleepy] = try { implicitly[Sleepy[A]].sleep(1000) } catch { case ex:InterruptedException => ex.printStackTrace() } sleep }