From a9cc28f3b1fa2a80ebef26f7d198f305bc85828d Mon Sep 17 00:00:00 2001 From: Stephen Diehl Date: Thu, 21 Apr 2016 18:50:01 -0400 Subject: [PATCH] remove partial functions --- src/Bifunctor.hs | 32 ++++++++++++++++---------------- src/Protolude.hs | 2 -- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/Bifunctor.hs b/src/Bifunctor.hs index 62c03de6a..3b2d1cca2 100644 --- a/src/Bifunctor.hs +++ b/src/Bifunctor.hs @@ -10,38 +10,38 @@ import Data.Either (Either(..)) import Control.Applicative ( Const(..) ) class Bifunctor p where - {-# MINIMAL bimap | first, second #-} + {-# MINIMAL bimap | first, second #-} - bimap :: (a -> b) -> (c -> d) -> p a c -> p b d - bimap f g = first f . second g + bimap :: (a -> b) -> (c -> d) -> p a c -> p b d + bimap f g = first f . second g - first :: (a -> b) -> p a c -> p b c - first f = bimap f id + first :: (a -> b) -> p a c -> p b c + first f = bimap f id - second :: (b -> c) -> p a b -> p a c - second = bimap id + second :: (b -> c) -> p a b -> p a c + second = bimap id instance Bifunctor (,) where - bimap f g ~(a, b) = (f a, g b) + bimap f g ~(a, b) = (f a, g b) instance Bifunctor ((,,) x1) where - bimap f g ~(x1, a, b) = (x1, f a, g b) + bimap f g ~(x1, a, b) = (x1, f a, g b) instance Bifunctor ((,,,) x1 x2) where - bimap f g ~(x1, x2, a, b) = (x1, x2, f a, g b) + bimap f g ~(x1, x2, a, b) = (x1, x2, f a, g b) instance Bifunctor ((,,,,) x1 x2 x3) where - bimap f g ~(x1, x2, x3, a, b) = (x1, x2, x3, f a, g b) + bimap f g ~(x1, x2, x3, a, b) = (x1, x2, x3, f a, g b) instance Bifunctor ((,,,,,) x1 x2 x3 x4) where - bimap f g ~(x1, x2, x3, x4, a, b) = (x1, x2, x3, x4, f a, g b) + bimap f g ~(x1, x2, x3, x4, a, b) = (x1, x2, x3, x4, f a, g b) instance Bifunctor ((,,,,,,) x1 x2 x3 x4 x5) where - bimap f g ~(x1, x2, x3, x4, x5, a, b) = (x1, x2, x3, x4, x5, f a, g b) + bimap f g ~(x1, x2, x3, x4, x5, a, b) = (x1, x2, x3, x4, x5, f a, g b) instance Bifunctor Either where - bimap f _ (Left a) = Left (f a) - bimap _ g (Right b) = Right (g b) + bimap f _ (Left a) = Left (f a) + bimap _ g (Right b) = Right (g b) instance Bifunctor Const where - bimap f _ (Const a) = Const (f a) + bimap f _ (Const a) = Const (f a) diff --git a/src/Protolude.hs b/src/Protolude.hs index 9fb1847ce..36024b242 100644 --- a/src/Protolude.hs +++ b/src/Protolude.hs @@ -51,8 +51,6 @@ import Safe as X ( , tailSafe , lastDef , lastMay - , lookupJust - , findJust , foldr1May , foldl1May , atMay