module CPkgPrelude ( -- * Base reëxports
                     Generic
                   , Natural
                   , void
                   , when
                   , unless
                   , traverse_
                   , fold
                   , toList
                   , filterM
                   , forM_
                   , ($>)
                   , (<=<)
                   , (<=*<)
                   , MonadIO (..)
                   , Void
                   -- * Dhall reëxports
                   , ToDhall
                   , FromDhall
                   -- * hashable reëxports
                   , Hashable
                   -- * Exports from "Data.Binary"
                   , Binary
                   -- prettyprinter reëxports
                   , Doc
                   , Pretty (..)
                   , punctuate
                   -- * microlens reëxports
                   , Lens'
                   , over
                   -- * Exports from "System.FilePath"
                   , (</>)
                   -- * Exports from "System.Directory"
                   , doesFileExist
                   , removeDirectoryRecursive
                   , getAppUserDataDirectory
                   ) where

import           Control.Composition    ((<=*<))
import           Control.Monad
import           Control.Monad.IO.Class (MonadIO (..))
import           Data.Binary            (Binary)
import           Data.Foldable
import           Data.Functor           (($>))
import           Data.Hashable          (Hashable)
import           Data.Void              (Void)
import           Dhall                  (FromDhall, ToDhall)
import           GHC.Generics           (Generic)
import           GHC.Natural            (Natural)
import           Lens.Micro             (Lens', over)
import           Prettyprinter
import           System.Directory
import           System.FilePath        ((</>))