module Rebase.Data.Bifunctor
(
  module Data.Bifunctor,
  mapLeft,
  mapRight,
)
where

import Data.Bifunctor


-- |
-- A more meaningful and conflict-free alias for 'first'.
{-# INLINE mapLeft #-}
mapLeft :: Bifunctor p => (a -> b) -> p a c -> p b c
mapLeft :: forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> p a c -> p b c
mapLeft =
  forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> p a c -> p b c
first

-- |
-- A more meaningful and conflict-free alias for 'second'.
{-# INLINE mapRight #-}
mapRight :: Bifunctor p => (b -> c) -> p a b -> p a c
mapRight :: forall (p :: * -> * -> *) b c a.
Bifunctor p =>
(b -> c) -> p a b -> p a c
mapRight =
  forall (p :: * -> * -> *) b c a.
Bifunctor p =>
(b -> c) -> p a b -> p a c
second