Since 1025f76df1 it seems that missing
nodes point to a 'zombie' node, where the m_isValid member is false.
This caused .as(const S& fallback) throw an exception if the node was
missing, instead of returning the provided fallback value (as was the
behaviour previous to the above commit)