reorganize project hierarchy, make building with cabal install work, use
optparse-applicative for command line argument processing.