Sealed Class Approach to Intersection Types

sealed class Expr {
    class Const(val number: Double) : Expr()
    class Sum(val e1: Expr, val e2: Expr) : Expr()
    object NotANumber : Expr()
}
Meta
c23782fe-8533-4f41-90cb-438d54169db0