Disjoint forms in graphical user interfaces

Forms are parts of a graphical user interface (GUI) that show a set of values and allow the user to update them. The declarative form construction library FunctionalForms is extended with disjoint form combinators to capture some common patterns in which the form structure expresses a choice. We demonstrate that these combinators lead to a better separation of logic and layout.