High level, generic library for interrogative user interfaces in Haskell