/* Here is a basic list definition sealed trait List[+A] case class Cons[+A](head: A, tail: List[A]) extends List[A] case object Nil extends List[Nothing] */ object List { def add[A](as: List[A], a: A): List[A] = Cons(a, as) }