% if element type is enum `hierarchy` mode
% else `linear` mode
:- op(1150, fy, enumeration).

:- enum( type, _Elements_ ).

 :- public
 hitalk_type,% :- true by default
 prolog_type,% :- true by default
 user_type. % :- true by default
:- end_enum.

% generates by fact that enum has enum elements
:- enum(hitalk_type, _).

 :- public
 object, % :- true by default
 category, % :- true by default
 protocol, % :- true by default
 enum,
 module,
 event.

:- end_enum.