Positional record initialization, non-algebraic record types, algebraic types