//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 (in base): number literals
class NumD(value: Int) extends BaseD {def eval = value}
// Extension: 2nd concrete data: data addition
class PlusD(a: BaseD, b: BaseD) extends BaseD {
def eval = a.eval + b.eval
}