Trying to wrap my mind around singleton types to see if they might be 
useful for something I'm working on, but running into some confusion. Here 
is an example that I started working with:

julia> type BadInt
       end

julia> import Base.+

julia> +(x::BadInt, y::Int64) = x - y
+ (generic function with 172 methods)

julia> BadInt() = 2
BadInt

julia> BadInt + 2
ERROR: MethodError: `+` has no method matching +(::Type{BadInt}, ::Int64)
Closest candidates are:
  +(::Any, ::Any, ::Any, ::Any...)
  +(::Int64, ::Int64)
  +(::Complex{Bool}, ::Real)
  ...

As I understand, a singleton type can only take on a single value. What's 
the utility in supporting this?

Reply via email to