Exploring the structural typing and subtyping in Scala.