Choosing Between Identity and Structural Equality in Ceylon Classes
Ceylon's == operator calls equals(), while === compares identity. Learn when to override equals() and hash for structural equality, with a working example and validation steps.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Ceylon's == operator calls equals(), while === compares identity. Learn when to override equals() and hash for structural equality, with a working example and validation steps.
Ceylon’s first‑class union and intersection types give precise, flow‑sensitive static typing without runtime wrappers. This blog shows the syntax, narrowing behavior, and why the discontinued language still illustrates a powerful design.
Ceylon's union, intersection and optional types model alternatives and absence without wrappers, with compile-time narrowing. This guide compares the constructs, shows a narrowing example, and weighs the dormant 1.3.3 maintenance status for 2026 use.
Learn how Ceylon’s union and intersection types let you model optional JSON fields and mixed‑concern traits directly in the type system, reducing boilerplate while keeping compile‑time safety.
Discover how Ceylon’s union and optional types (T? and String|Integer) give you compile‑time null safety, and learn a step‑by‑step workflow to build, run, and test a small JVM module with the last stable 1.3.x toolchain.
Learn how to interoperate with Java code in Ceylon while leveraging its compile‑time null safety to avoid NullPointerExceptions.
Learn how to choose between value and reference types in Ceylon to optimize memory layout, reduce GC pressure, and improve CPU cache locality on the JVM.
Ceylon's union and intersection types with principal typing offered expressive static typing on the JVM — flow-sensitive narrowing, ad-hoc polymorphism without inheritance — but complexity explosion and tooling death limited adoption. Modern languages kept the ergonomics, dropped the baggage.
A decision guide for choosing between Ceylon’s universal type 'any' and safer alternatives like unions, variance‑annotated generics, or traits when designing heterogeneous collections.