Sol objects are typed by their membership in sets. All primitive types are members of the core Sol sets, and all other sets ultimately derive from operations on or elements from core sets.