{-# LANGUAGE CPP  #-}
{-# LANGUAGE Safe #-}

{- |
Copyright:  (c) 2018-2020 Kowainik
SPDX-License-Identifier: MIT
Maintainer:  Kowainik <xrom.xkov@gmail.com>
Stability:   Stable
Portability: Portable

Reexports "Data.Foldable" and "Data.Traversable".
-}

module Relude.Foldable.Reexport
    ( -- * @Foldable@ reexports
      module Data.Foldable
    , module Data.Traversable
#if MIN_VERSION_base(4,10,0)
      -- * @Bi@ reexports
    , module Data.Bifoldable
    , module Data.Bitraversable
#endif
    ) where

import Data.Foldable (Foldable (fold, foldMap, foldl', foldr, length, null, toList), all, and, any,
                      asum, concat, concatMap, find, foldlM, forM_, for_, mapM_, or, sequenceA_,
                      sequence_, traverse_)
#if MIN_VERSION_base(4,13,0)
import Data.Foldable (foldMap')
#endif
import Data.Traversable (Traversable (..), forM, mapAccumL, mapAccumR)
#if MIN_VERSION_base(4,10,0)
import Data.Bifoldable (Bifoldable (..), biList, biall, biand, biany, biasum, bielem, bifind,
                        bifoldl', bifoldlM, bifoldr', bifoldrM, bifor_, bilength, binull, bior,
                        bisequence_, bitraverse_)
import Data.Bitraversable (Bitraversable (..), bifoldMapDefault, bifor, bimapDefault, bisequence)
#endif