Problem
Comparable is too heavy for Drops: you must implement equals/gt/geq/lt/leq, or operators fall through to sync toValue() and ignore a partial equals. Built-ins stub four methods as no-ops. Async valueOf (#948) can't fit without breaking the custom operators API (toValue stays sync, #845).
Without a usable Drop path, this interface isn't worth keeping.
Proposal
- Coerce operands via
valueOf (awaitable in the generator path), then compare primitives
- Remove public
Comparable (keep empty/nil behavior internally if needed)
- Break/redesign custom
operators handlers for async-capable signatures
Problem
Comparableis too heavy for Drops: you must implementequals/gt/geq/lt/leq, or operators fall through to synctoValue()and ignore a partialequals. Built-ins stub four methods as no-ops. AsyncvalueOf(#948) can't fit without breaking the customoperatorsAPI (toValuestays sync, #845).Without a usable Drop path, this interface isn't worth keeping.
Proposal
valueOf(awaitable in the generator path), then compare primitivesComparable(keepempty/nilbehavior internally if needed)operatorshandlers for async-capable signatures