Snapshot: assert-like

This is a snapshot of the assertion object but before introducing the
pre API (an assert-like function exists to test it). Experimental.
First version of pre

First implementation of the precondition.