I don’t think this has been suggestedin this thread.
When I wanted an enumerated type I used singleton types with a common supertype:
abstract type DrawingMode end
struct Outline <: DrawingMode end
struct Fill<: DrawingMode end
function circle(something, ::Fill)
...
end
circle(stuff, Fill())