Add holes monad transformer
Refactor choices using type families