
Carp::datum implements the following features:
* programming by contract: pre-conditions, post-conditions, assertions.
* flow control tracing: routine entry, arguments, returned values
* dynamic (i.e. runtime) configuration via mini language to tailor
debugging and/or tracing at the routine / file / package / type level.
* ability to statically remove all assertions and flow control tracing
hooks in modules making use of carp::datum.
* cooperation with log::agent for tracing.