Facilities for tagging data with named constructors. The behaviour of constructors with respect to type-checking is extremely subtle. However one has access to arbitrary fixed-point definitions. CHalf has features that deal with simultaneous definitions, but they appear to be broken. There is a way to kluge round the bug.
Theories are quite difficult to use.
One needs some sugar for introducing their components under new names, such as is provided by Agda . There is a certain amount of extra sugar that goes with these. But it is used by the proof editor as a default, when one sends the checker an Intro command. I am not sure if they are allowed to be nested. This has to do with loading a selection of files in the right order into the type-checker.