the test cases in this file only show pass/fail, they
don't indicate the actual type returned by deref, which
will make debugging failures harder. I typically use
BOOST_MPL_ASSERT((is_same<X, Y>)); specifically for
this reason (even when static_assert is available).
Actually, in general, these tests need to check both
the type and the value. Checking just the type is
insufficient.
deref.cpp: