case class Dog(name: String, breed: String)
case class Cat(name: String, breed: String)
case class Horse(name: String, breed: String)

trait AnimalLike {
  def name: String
  def breed: String
}

case class Dog(val name: String, val breed: String) extends AnimalLike