On structures like maps or \hyperlink{doc_decisions_array_md}{arrays} there are different possibilities which keys are looked up in the Key\+Set and which are simply iterated.

Without any guidelines, applications would provide arbitrary inconsistent behavior.


\begin{DoxyItemize}
\item Applications that have good reasons to ignore the guidelines (e.\+g. they only read from one namespace), are allowed to do so.
\end{DoxyItemize}


\begin{DoxyItemize}
\item only lookup the roots and then iterate over the next keys
\item let the applications do what they want without any guideline
\end{DoxyItemize}

Every key that an application wants to use, must be looked up with {\ttfamily ks\+Lookup} using a cascading lookup key.


\begin{DoxyItemize}
\item very simple rule, easy to understand, easy to follow
\item provides consistent behavior ({\ttfamily spec} is always honored)
\item {\ttfamily ks\+Lookup} is quite cheap as it has only a few simple loops, only one allocation and less then 10\% of C\+PU time in profiling, even in very simple applications with many lookups.
\end{DoxyItemize}

Needs some helper functions or support in bindings as it is a bit tricky to implement e.\+g. for arrays.


\begin{DoxyItemize}
\item \hyperlink{doc_decisions_array_md}{Arrays}
\end{DoxyItemize}