в визуальном прологе есть раздел «домены» в программе пролога, в котором вы можете определять типы. Есть ли подобное в swi-prolog?
В визуальном прологе тип определяется следующим образом:
domains NewType = thing1; thing2