scala/ScalaBook/chapter-12/src/main/scala/scalabook/ep/family/ooc/base.scala

package scalabook.ep.ooc

/**
 * Family-based OO decomposition.
 * 
 * @author Christos KK Loverdos
 */

trait BaseLang {
    type Data <: BaseD

    trait BaseD {
        def eval: Int
    }

    class NumD(value: Int) extends BaseD {
        def eval = value
    }
}