discard """ output: "(kind: None)" """ when true: # bug #2637 type OptionKind = enum None, Some Option*[T] = object case kind: OptionKind of None: discard of Some: value*: T proc none*[T](): Option[T] = Option[T](kind: None) proc none*(T: typedesc): Option[T] = none[T]() proc test(): Option[int] = int.none echo test()