package scalabook.ep.dc
/**
* Base definitions for the Data-Centric approach.
* @author Christos KK Loverdos
*/
// Base data with a default operation
trait BaseD {
def eval: Int
}
// 1st concrete data: number literals
class NumD(value: Int) extends BaseD {
def eval = value
}
// 2nd concreate data: data addition
class PlusD(a: BaseD, b: BaseD) extends BaseD {
def eval = a.eval + b.eval
}