def eith[R](arg: Either[Throwable, Any] ) : R = { arg match { case Left(e) => throw e case Right(o:Either[Throwable, Any]) => eith(o) case Right(o:R) => o } }