data Package = Package
    { name :: String
    , version :: String
    }
    deriving (Eq, Ord)

type M = RWST Newest (Set.Set Package) (Set.Set String) IO

bootlibs :: Set.Set String
bootlibs = Set.fromList $ words
    "containers ghc-binary ghc-prim Cabal base old-locale old-time time random syb template-haskell filepath haskell98 unix Win32 bytestring deepseq array network process directory" -- FIXME

main :: IO ()
main = do
    toProcess <- getArgs