kkallio@8: (* Gui framework elements common across individual components. *) kkallio@8: kkallio@8: (* Types of this class describe gui components. *) rmbruijn@18: class gui :: Type -> Type -> Type rmbruijn@18: kkallio@8: rmbruijn@18: (* class gui = fn t xcomponent => t -> xcomponent *) rmbruijn@18: (* class gui :: Type -> Type -> Type *) rmbruijn@18: rmbruijn@18: (* How to add components to the gui class. *) rmbruijn@18: val mkGui : t ::: Type -> xcomponent:::Type -> (t -> xcomponent) -> gui t xcomponent rmbruijn@18: rmbruijn@18: (* Xml itself can be a gui component. *) rmbruijn@18: val gui_xbody : gui xbody xbody rmbruijn@18: kkallio@8: (* Currently the only thing a gui component can do is be kkallio@8: * pretty printed to a piece of xml. *) rmbruijn@18: val toXml : t ::: Type -> xcomponent ::: Type -> gui t xcomponent -> t -> xcomponent kkallio@8: kkallio@8: rmbruijn@18: