package scalabook.data
object ForEach {
type StructuralForEach[T] = {
def foreach(f: T => Unit): Unit
}
implicit def structuralToNominalForEach[T](s: StructuralForEach[T]): ForEach[T] =
new ForEach[T] {
def foreach(f: T => Unit) = s foreach f
}
}
trait ForEach[T] {
def foreach(f: T => Unit): Unit
}