Simplify Fix a bit
Infer minor param
Specialize List and Elem to String as primitives Enum and Tag
Get rid of recursive function args for initial implementation