The fundamental Haggis type is that of user interface components, called DisplayHandle. A value of type DisplayHandle represent a handle to an as-yet unrealised component.
The explicit handle representation of components is used to build and construct larger components by composing and encapsulating existing ones together, e.g.,
hbox :: [DisplayHandle] -> DisplayHandle
hbox returns a new DisplayHandle, constructed by aligning a list of DisplayHandles horisontally.
The properties of a user interface component / DisplayHandle:
When realised, a DisplayHandle is receptive to system commands such as resize and redisplay, and the notification of user input events.
To start the composition of DisplayHandles off, the Haggis core provide the following basic DisplayHandle:
nullDH :: DisplayHandle
representing the component with no appearance nor size.