A CompletionTree is a map of partial completions.
Example:
fromList ["put","putStr","putStrLn","print","abc"]
Gives the following tree:
/ "p" "abc" / "ut" "rint" /
Str "" /
Ln ""
(The empty strings are needed to denote the end of a word) (A
CompletionTree is not limited to a binary tree)