values like `true`, `false`, and `nil` should be singletons In short, move `Expr::Literal.new(nil)` and similar stuff to constants