an>(<a href="#type-needs_canon">needs_canon</a> * <span class="type-var">'b</span>)</span>)</span> <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span> * <span>(<a href="#type-t">t</a> * <span class="type-var">'b</span>)</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-canon_opt"><a href="#val-canon_opt" class="anchor"></a><code><span><span class="keyword">val</span> canon_opt : <span><a href="#type-astate">astate</a> <span class="arrow"