data Tree : Type -> Type
E : Tree a
T : a -> Tree a -> Tree a -> Tree a
FiniteMap m k => FiniteMap (Trie (m k)) (Tree k)
data Trie : (Type -> Type) -> Type -> Type -> Type
MkTrie : Maybe a -> mk (Trie mk ks (Trie mk ks a)) -> Trie mk ks a