Types and Structsstruct, type definitions, embedding, value semantics, and differences from class/record