anchor.diff:      printf "prefix 1: %A\n" (trie_find_prefix ["AA"; ""] tmp);
       printf "prefix 2: %A\n" (trie_find_prefix ["A"; "C2"] tmp);
       printf "prefix w/ alias: %A\n" (trie_find_prefix ["X"] tmp);
  -    printf "flat: %A\n" (trie_flatten tmp []);
  +    printf "flat: %A\n" (trie_flatten [] tmp []);
       // printf "full: %A\n" tmp;
   
       // let tmp = trie_insert tmp ["AA1"; "b1"] "AA1/b1" in
  
positive.code: 
  (** * Tries * **)
  
  type subtrie<'a> =
  | Alias of string * list<string>
  | ProperSubtrie of trie<'a>
  and trie<'a> =
  | Trie of option<'a> * btree<subtrie<'a>>
  
negative.code:     else
        Some v
  
  let rec btree_find_prefix (tr: btree<'a>) (prefix: string) : list<string*'a> =
    let rec aux (tr: btree<'a>) (prefix: string) (acc: list<string*'a>) : list<string*'a> =
      match tr with
      | StrEmpty -> acc
      | StrBranch (k, v, ltr, rtr) ->
  