module CabalFmt.Prelude (
(&&&),
when, unless, void,
bimap,
toLower,
partitionEithers,
toList, traverse_, asum,
on, (&),
intercalate, sortOn, sortBy, nub,
catMaybes,
fromMaybe,
isJust,
isNothing,
ByteString,
C.fromUTF8BS, C.toUTF8BS,
pack', unpack',
Set,
dropExtension, splitDirectories,
catchError, throwError,
traverseOf,
over, view,
_1,
) where
import Control.Arrow ((&&&))
import Control.Monad (unless, void, when)
import Control.Monad.Except (catchError, throwError)
import Data.Bifunctor (bimap)
import Data.ByteString (ByteString)
import Data.Char (toLower)
import Data.Either (partitionEithers)
import Data.Foldable (asum, toList, traverse_)
import Data.Function (on, (&))
import Data.List (intercalate, nub, sortBy, sortOn)
import Data.Maybe (catMaybes, fromMaybe, isJust, isNothing)
import Data.Set (Set)
import Distribution.Compat.Lens (over, view)
import Distribution.Compat.Newtype (pack', unpack')
import System.FilePath (dropExtension, splitDirectories)
import qualified Distribution.Simple.Utils as C
traverseOf
:: Applicative f
=> ((a -> f b) -> s -> f t)
-> (a -> f b) -> s -> f t
traverseOf = id
_1 :: Functor f => (a -> f b) -> (a, c) -> f (b, c)
_1 f (a, c) = (\b -> (b, c)) <$> f a