datatype ('a,'v)trie = Trie ('v option) "('a * ('a,'v)trie)list"
