Data Classes and Sealed Types for Java