(SuregenConcept Thing :is-a SuregenObject
:has (colour height))
This defines, simply enough, Thing as a SuregenObject (the top class) with colour and height as attributes.
Attributes defined with :has are "visible" externally and can be modified at runtime via GUI/API. When defined using the :has-intern keyword attributes can be hidden and used/modified by SUREGEN-II procedures only:
(SuregenConcept P_PrepareMeal :is-a SuregenProcess
:has-intern ((SP :are (P1_buyFood P2_cook P3_setTable))))
P_PrepareMeal is - somewhat outside the range of intended applications -defined as a SuregenProcess with an internal attribute named SP (= subprocesses). The :are keyword ensures that instances of the respective classes P1_buyFood, P2_cook and P3_setTable are generated for every new instance of P_PrepareMeal (provided that the classes exist at instantiation time).