# Composite and Non-Composite User-Defined Data Types

I have a learning resource which claims the following about user-defined data types

Non-composite include:

• Enumerated
• Pointer

Composite include:

• Record
• Set

This confuses me, and I would appreciate some clarification. I would have thought that such things as int, bool, float and str would count as non-composite while the others are composite.

I guess this is language-specific to some extent, and also depends if we are talking about the underlying implementation or the programming construct.

I'm particularly interested in how this relates to Python.

Is one way of clearing this up to use a definition like "it's composite if in your particular language you can't just create a variable of the given type without defining the type first?"