tml" title="hana::lazy implements superficial laziness via a monadic interface.">hana::lazy</a></code>, you could write the previous example as </p><div class="fragment"><div class="line"><span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><span class="keyword">struct </span>pointerize : decltype(</div>
<div class="line">    hana::eval_if(hana::traits::is_pointer(hana::type_c&lt;T&gt;),</div>
<div class="line">        hana::make_lazy(hana::type_c&lt;