Design 1 example
class Assign {
genCode() {}
typeCheck() {}
optimize() {}
}
class Call {
genCode() {}
typeCheck() {}
optimize() {}
}