minor clean-up while investigating timeout on windows
Merge remote-tracking branch 'origin/next' into mjcaisse
* check precondition on constructor.  * fix Back to return item_.back   * make terminal type safe
Merge branch 'mjcaisse' into next