``` interface CommutativeExpr sealed class Expr s...
# language-proposals
d
Copy code
interface CommutativeExpr

sealed class Expr
sealed class BinExpr(val e1: Expr, val e2: Expr) : Expr()
class Plus(e1: Expr, e2: Expr): BinExpr(e1, e2), CommutativeExpr
class Minus(e1: Expr, e2: Expr): BinExpr(e1, e2)
class Mul(e1: Expr, e2: Expr): BinExpr(e1, e2), CommutativeExpr
class Div(e1: Expr, e2: Expr): BinExpr(e1, e2)