node = root key + value ->
  select = tn char ->
    if (index <= tn.nodes._
        ' index = char-index + 1
        ' char-index : integer <- char) -> 
      tn.nodes.index
    else 
      exit ERR_KEY_NOT_FOUND
    ;
  _
    tn : tree-node
    char : string
  ;

  value = node.data
  ' - chars-in key ( char ->
                             node = select node char
                   )
  ' node = root ..
_
  root : tree-node
  key : string
;
