Using has_type(list(Type), X) with user created type not working as expected

With a warning, yes. You should avoid warnings though :slight_smile: Otherwise it is not clear to me what you are trying to do. I see no reason for element_types/2 to be exported. Can you share the code you want to write?