module Bitraversable
  ( -- * Bitraversable
    Bitraversable(..)
  , bisequence
  , bifor
  , bimapAccumL
  , bimapAccumR
    -- ** Default @Bifunctor@ implementation
  , bimapDefault
    -- ** Default @Bifoldable@ implementation
  , bifoldMapDefault
    -- * Bitraversable1
  , Bitraversable1(..)
    -- ** Default @Bifoldable1@ implementation
  , bifoldMap1Default
  ) where

import Data.Bitraversable           (Bitraversable(bitraverse),
                                     bifoldMapDefault, bifor, bimapAccumL,
                                     bimapAccumR, bimapDefault, bisequence)
import Data.Semigroup.Bitraversable (Bitraversable1(bisequence1, bitraverse1),
                                     bifoldMap1Default)