// see the comments for macroExpand.onDelayed for an explanation of what's tested here
object Test extends App {
  case class Foo(i: Int, s: String, b: Boolean)
  def foo[C, L](c: C)(implicit iso: Iso[C, L]): L = iso.to(c)

  {
    val equiv = foo(Foo(23, "foo", true))
    def typed[T](t: => T): Unit = {}
    typed[(Int, String, Boolean)](equiv)
    println(equiv)
  }
}