Typed structs on steroids based on algebraic types and pattern matching.