learning-scala-typesystem