Constify parameters (enabling static RTTI). Move type definitions into a header for sharing with cpp.c objects.