yaya-containers 0.1.1.0 → 0.1.2.0
raw patch · 5 files changed
+327/−88 lines, 5 filesdep ~yayaPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: yaya
API changes (from Hackage documentation)
+ Yaya.Containers.Pattern.IntMap: instance (GHC.Read.Read a, GHC.Read.Read r) => GHC.Read.Read (Yaya.Containers.Pattern.IntMap.IntMapF a r)
+ Yaya.Containers.Pattern.IntMap: instance Data.Functor.Classes.Read2 Yaya.Containers.Pattern.IntMap.IntMapF
+ Yaya.Containers.Pattern.IntMap: instance GHC.Read.Read a => Data.Functor.Classes.Read1 (Yaya.Containers.Pattern.IntMap.IntMapF a)
+ Yaya.Containers.Pattern.IntSet: instance Data.Functor.Classes.Read1 Yaya.Containers.Pattern.IntSet.IntSetF
+ Yaya.Containers.Pattern.IntSet: instance GHC.Read.Read r => GHC.Read.Read (Yaya.Containers.Pattern.IntSet.IntSetF r)
+ Yaya.Containers.Pattern.Map: compareMapF :: (k -> k' -> Ordering) -> (v -> v' -> Ordering) -> (r -> r' -> Ordering) -> MapF k v r -> MapF k' v' r' -> Ordering
+ Yaya.Containers.Pattern.Map: eqMapF :: (k -> k' -> Bool) -> (v -> v' -> Bool) -> (r -> r' -> Bool) -> MapF k v r -> MapF k' v' r' -> Bool
+ Yaya.Containers.Pattern.Map: instance (GHC.Read.Read k, GHC.Read.Read v) => Data.Functor.Classes.Read1 (Yaya.Containers.Pattern.Map.MapF k v)
+ Yaya.Containers.Pattern.Map: instance (GHC.Read.Read k, GHC.Read.Read v, GHC.Read.Read r) => GHC.Read.Read (Yaya.Containers.Pattern.Map.MapF k v r)
+ Yaya.Containers.Pattern.Map: instance GHC.Read.Read k => Data.Functor.Classes.Read2 (Yaya.Containers.Pattern.Map.MapF k)
+ Yaya.Containers.Pattern.Map: readMapFPrec :: ReadPrec k -> ReadPrec v -> ReadPrec r -> ReadPrec (MapF k v r)
+ Yaya.Containers.Pattern.Map: showsMapFPrec :: (Int -> k -> ShowS) -> (Int -> v -> ShowS) -> (Int -> r -> ShowS) -> Int -> MapF k v r -> ShowS
+ Yaya.Containers.Pattern.Set: instance (GHC.Read.Read a, GHC.Read.Read r) => GHC.Read.Read (Yaya.Containers.Pattern.Set.SetF a r)
+ Yaya.Containers.Pattern.Set: instance Data.Functor.Classes.Read2 Yaya.Containers.Pattern.Set.SetF
+ Yaya.Containers.Pattern.Set: instance GHC.Read.Read a => Data.Functor.Classes.Read1 (Yaya.Containers.Pattern.Set.SetF a)
Files
- src/Yaya/Containers/Pattern/IntMap.hs +70/−20
- src/Yaya/Containers/Pattern/IntSet.hs +32/−4
- src/Yaya/Containers/Pattern/Map.hs +153/−44
- src/Yaya/Containers/Pattern/Set.hs +70/−18
- yaya-containers.cabal +2/−2
src/Yaya/Containers/Pattern/IntMap.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE Safe #-} {-# OPTIONS_GHC -Wno-orphans #-} @@ -6,26 +7,21 @@ ) where +import "base" Control.Applicative (Alternative ((<|>)), Applicative ((<*>)), (*>)) import "base" Control.Category (Category ((.))) import "base" Data.Bool (Bool (False, True), (&&)) import "base" Data.Eq (Eq ((==))) import "base" Data.Foldable (Foldable) import "base" Data.Function (($))-import "base" Data.Functor (Functor (fmap))-import "base" Data.Functor.Classes- ( Eq1 (liftEq),- Eq2 (liftEq2),- Ord1 (liftCompare),- Ord2 (liftCompare2),- Show1 (liftShowsPrec),- Show2 (liftShowsPrec2),- )+import "base" Data.Functor (Functor (fmap), (<$), (<$>)) import "base" Data.Ord (Ord (compare, (<=)), Ordering (EQ, GT, LT)) import "base" Data.Semigroup ((<>)) import "base" Data.Traversable (Traversable) import qualified "base" Data.Tuple as Tuple import "base" GHC.Generics (Generic, Generic1)-import "base" Text.Show (Show (showList, showsPrec), showParen, showString)+import "base" GHC.Read (Read (readListPrec, readPrec), expectP, parens)+import "base" Text.ParserCombinators.ReadPrec (prec, step)+import qualified "base" Text.Read.Lex as Lex import qualified "containers" Data.IntMap.Internal as IntMap import "yaya" Yaya.Fold ( Projectable (project),@@ -33,6 +29,31 @@ Steppable (embed), ) import "base" Prelude (Num ((+)))+#if MIN_VERSION_base(4, 18, 0)+import "base" Data.Functor.Classes+ ( Eq1,+ Eq2 (liftEq2),+ Ord2 (liftCompare2),+ Ord1,+ Read1 (liftReadPrec),+ Read2 (liftReadPrec2),+ Show1,+ Show2 (liftShowsPrec2),+ )+import "base" Text.Show (Show (showsPrec), showParen, showString)+#else+import "base" Data.Functor.Classes+ ( Eq1 (liftEq),+ Eq2 (liftEq2),+ Ord1 (liftCompare),+ Ord2 (liftCompare2),+ Read1 (liftReadPrec),+ Read2 (liftReadPrec2),+ Show1 (liftShowsPrec),+ Show2 (liftShowsPrec2),+ )+import "base" Text.Show (Show (showList, showsPrec), showParen, showString)+#endif data IntMapF a r = NilF@@ -42,6 +63,8 @@ ( Eq, Ord, Generic,+ -- | @since 0.1.2.0+ Read, Show, Foldable, Functor,@@ -62,10 +85,12 @@ embed (TipF key a) = IntMap.Tip key a embed (BinF prefix mask l r) = IntMap.Bin prefix mask l r +#if MIN_VERSION_base(4, 18, 0)+instance (Eq a) => Eq1 (IntMapF a)+#else instance (Eq a) => Eq1 (IntMapF a) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftEq = liftEq2 (==)+#endif instance Eq2 IntMapF where liftEq2 f g = Tuple.curry $ \case@@ -75,10 +100,12 @@ prefix == prefix' && mask == mask' && g l l' && g r r' (_, _) -> False +#if MIN_VERSION_base(4, 18, 0)+instance (Ord a) => Ord1 (IntMapF a)+#else instance (Ord a) => Ord1 (IntMapF a) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftCompare = liftCompare2 compare+#endif instance Ord2 IntMapF where liftCompare2 f g = Tuple.curry $ \case@@ -91,25 +118,48 @@ compare prefix prefix' <> compare mask mask' <> g l l' <> g r r' (BinF {}, _) -> GT +-- | @since 0.1.2.0+instance (Read a) => Read1 (IntMapF a) where+ liftReadPrec = liftReadPrec2 readPrec readListPrec++-- | @since 0.1.2.0+instance Read2 IntMapF where+ liftReadPrec2 readPrecA _ readPrecR _ =+ let appPrec = 10+ in parens . prec appPrec $+ NilF+ <$ expectP (Lex.Ident "NilF")+ <|> expectP (Lex.Ident "TipF")+ *> (TipF <$> step readPrec <*> step readPrecA)+ <|> expectP (Lex.Ident "BinF")+ *> ( BinF+ <$> step readPrec+ <*> step readPrec+ <*> step readPrecR+ <*> step readPrecR+ )++#if MIN_VERSION_base(4, 18, 0)+instance (Show a) => Show1 (IntMapF a)+#else instance (Show a) => Show1 (IntMapF a) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftShowsPrec = liftShowsPrec2 showsPrec showList+#endif instance Show2 IntMapF where- liftShowsPrec2 showsPrecA _showListA showsPrecR _showListR prec =+ liftShowsPrec2 showsPrecA _ showsPrecR _ p = let appPrec = 10 nextPrec = appPrec + 1 in \case NilF -> showString "NilF" TipF key a ->- showParen (nextPrec <= prec) $- showString "BipF "+ showParen (nextPrec <= p) $+ showString "TipF " . showsPrec nextPrec key . showString " " . showsPrecA nextPrec a BinF prefix mask l r ->- showParen (nextPrec <= prec) $+ showParen (nextPrec <= p) $ showString "BinF " . showsPrec nextPrec prefix . showString " "
src/Yaya/Containers/Pattern/IntSet.hs view
@@ -6,15 +6,21 @@ ) where +import "base" Control.Applicative+ ( Alternative ((<|>)),+ Applicative ((<*>)),+ (*>),+ ) import "base" Control.Category (Category ((.))) import "base" Data.Bool (Bool (False, True), (&&)) import "base" Data.Eq (Eq ((==))) import "base" Data.Foldable (Foldable) import "base" Data.Function (($))-import "base" Data.Functor (Functor (fmap))+import "base" Data.Functor (Functor (fmap), (<$), (<$>)) import "base" Data.Functor.Classes ( Eq1 (liftEq), Ord1 (liftCompare),+ Read1 (liftReadPrec), Show1 (liftShowsPrec), ) import "base" Data.Ord (Ord (compare, (<=)), Ordering (EQ, GT, LT))@@ -22,6 +28,9 @@ import "base" Data.Traversable (Traversable) import qualified "base" Data.Tuple as Tuple import "base" GHC.Generics (Generic, Generic1)+import "base" GHC.Read (Read (readPrec), expectP, parens)+import "base" Text.ParserCombinators.ReadPrec (prec, step)+import qualified "base" Text.Read.Lex as Lex import "base" Text.Show (Show (showsPrec), showParen, showString) import qualified "containers" Data.IntSet.Internal as IntSet import "yaya" Yaya.Fold@@ -39,6 +48,8 @@ ( Eq, Ord, Generic,+ -- | @since 0.1.2.0+ Read, Show, Foldable, Functor,@@ -79,20 +90,37 @@ compare prefix prefix' <> compare mask mask' <> f l l' <> f r r' (BinF {}, _) -> GT +-- | @since 0.1.2.0+instance Read1 IntSetF where+ liftReadPrec readPrecR _ =+ let appPrec = 10+ in parens . prec appPrec $+ NilF+ <$ expectP (Lex.Ident "NilF")+ <|> expectP (Lex.Ident "TipF")+ *> (TipF <$> step readPrec <*> step readPrec)+ <|> expectP (Lex.Ident "BinF")+ *> ( BinF+ <$> step readPrec+ <*> step readPrec+ <*> step readPrecR+ <*> step readPrecR+ )+ instance Show1 IntSetF where- liftShowsPrec showsPrecR _showListR prec =+ liftShowsPrec showsPrecR _ p = let appPrec = 10 nextPrec = appPrec + 1 in \case NilF -> showString "NilF" TipF prefix bm ->- showParen (nextPrec <= prec) $+ showParen (nextPrec <= p) $ showString "TipF " . showsPrec nextPrec prefix . showString " " . showsPrec nextPrec bm BinF prefix mask l r ->- showParen (nextPrec <= prec) $+ showParen (nextPrec <= p) $ showString "BinF " . showsPrec nextPrec prefix . showString " "
src/Yaya/Containers/Pattern/Map.hs view
@@ -1,31 +1,46 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE Safe #-} {-# OPTIONS_GHC -Wno-orphans #-} module Yaya.Containers.Pattern.Map ( MapF (BinF, TipF),+ -- | @since 0.1.2.0+ eqMapF,+ -- | @since 0.1.2.0+ compareMapF,+ -- | @since 0.1.2.0+ readMapFPrec,+ -- | @since 0.1.2.0+ showsMapFPrec, ) where +import "base" Control.Applicative+ ( Alternative ((<|>)),+ Applicative ((<*>)),+ (*>),+ ) import "base" Control.Category (Category ((.))) import "base" Data.Bool (Bool (False, True), (&&)) import "base" Data.Eq (Eq ((==))) import "base" Data.Foldable (Foldable) import "base" Data.Function (($))-import "base" Data.Functor (Functor (fmap))-import "base" Data.Functor.Classes- ( Eq1 (liftEq),- Eq2 (liftEq2),- Ord1 (liftCompare),- Ord2 (liftCompare2),- Show1 (liftShowsPrec),- Show2 (liftShowsPrec2),- )+import "base" Data.Functor (Functor (fmap), (<$), (<$>))+import "base" Data.Int (Int) import "base" Data.Ord (Ord (compare, (<=)), Ordering (EQ, GT, LT)) import "base" Data.Semigroup ((<>)) import "base" Data.Traversable (Traversable) import qualified "base" Data.Tuple as Tuple import "base" GHC.Generics (Generic, Generic1)-import "base" Text.Show (Show (showList, showsPrec), showParen, showString)+import "base" GHC.Read (expectP)+import "base" Text.Read+ ( Read (readListPrec, readPrec),+ ReadPrec,+ parens,+ prec,+ step,+ )+import qualified "base" Text.Read.Lex as Lex import qualified "containers" Data.Map.Internal as Map import "yaya" Yaya.Fold ( Projectable (project),@@ -33,12 +48,44 @@ Steppable (embed), ) import "base" Prelude (Num ((+)))+#if MIN_VERSION_base(4, 18, 0)+import "base" Data.Functor.Classes+ ( Eq1,+ Eq2 (liftEq2),+ Ord1,+ Ord2 (liftCompare2),+ Read1 (liftReadPrec),+ Read2 (liftReadPrec2),+ Show1,+ Show2 (liftShowsPrec2),+ )+import "base" Text.Show (Show (showsPrec), ShowS, showParen, showString)+#else+import "base" Data.Functor.Classes+ ( Eq1 (liftEq),+ Eq2 (liftEq2),+ Ord1 (liftCompare),+ Ord2 (liftCompare2),+ Read1 (liftReadPrec),+ Read2 (liftReadPrec2),+ Show1 (liftShowsPrec),+ Show2 (liftShowsPrec2),+ )+import "base" Text.Show+ ( Show (showList, showsPrec),+ ShowS,+ showParen,+ showString,+ )+#endif data MapF k v r = TipF | BinF Map.Size k ~v r r deriving stock ( Eq, Ord, Generic,+ -- | @since 0.1.2.0+ Read, Show, Foldable, Functor,@@ -57,51 +104,113 @@ embed TipF = Map.Tip embed (BinF size k v l r) = Map.Bin size k v l r +eqMapF ::+ (k -> k' -> Bool) ->+ (v -> v' -> Bool) ->+ (r -> r' -> Bool) ->+ MapF k v r ->+ MapF k' v' r' ->+ Bool+eqMapF eqK eqV eqR = Tuple.curry $ \case+ (TipF, TipF) -> True+ (BinF size k v l r, BinF size' k' v' l' r') ->+ size == size' && eqK k k' && eqV v v' && eqR l l' && eqR r r'+ (_, _) -> False++compareMapF ::+ (k -> k' -> Ordering) ->+ (v -> v' -> Ordering) ->+ (r -> r' -> Ordering) ->+ MapF k v r ->+ MapF k' v' r' ->+ Ordering+compareMapF compareK compareV compareR = Tuple.curry $ \case+ (TipF, TipF) -> EQ+ (TipF, BinF {}) -> LT+ (BinF {}, TipF) -> GT+ (BinF size k v l r, BinF size' k' v' l' r') ->+ compare size size'+ <> compareK k k'+ <> compareV v v'+ <> compareR l l'+ <> compareR r r'++readMapFPrec :: ReadPrec k -> ReadPrec v -> ReadPrec r -> ReadPrec (MapF k v r)+readMapFPrec readPrecK readPrecV readPrecR =+ let appPrec = 10+ in parens . prec appPrec $+ TipF+ <$ expectP (Lex.Ident "TipF")+ <|> expectP (Lex.Ident "BinF")+ *> ( BinF+ <$> step readPrec+ <*> step readPrecK+ <*> step readPrecV+ <*> step readPrecR+ <*> step readPrecR+ )++showsMapFPrec ::+ (Int -> k -> ShowS) ->+ (Int -> v -> ShowS) ->+ (Int -> r -> ShowS) ->+ Int ->+ MapF k v r ->+ ShowS+showsMapFPrec showsPrecK showsPrecV showsPrecR p =+ let appPrec = 10+ nextPrec = appPrec + 1+ in \case+ TipF -> showString "TipF"+ BinF size k v l r ->+ showParen (nextPrec <= p) $+ showString "BinF "+ . showsPrec nextPrec size+ . showString " "+ . showsPrecK nextPrec k+ . showString " "+ . showsPrecV nextPrec v+ . showString " "+ . showsPrecR nextPrec l+ . showString " "+ . showsPrecR nextPrec r++#if MIN_VERSION_base(4, 18, 0)+instance (Eq k, Eq v) => Eq1 (MapF k v)+#else instance (Eq k, Eq v) => Eq1 (MapF k v) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftEq = liftEq2 (==)+#endif instance (Eq k) => Eq2 (MapF k) where- liftEq2 f g = Tuple.curry $ \case- (TipF, TipF) -> True- (BinF size k v l r, BinF size' k' v' l' r') ->- size == size' && k == k' && f v v' && g l l' && g r r'- (_, _) -> False+ liftEq2 = eqMapF (==) +#if MIN_VERSION_base(4, 18, 0)+instance (Ord k, Ord v) => Ord1 (MapF k v)+#else instance (Ord k, Ord v) => Ord1 (MapF k v) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftCompare = liftCompare2 compare+#endif instance (Ord k) => Ord2 (MapF k) where- liftCompare2 f g = Tuple.curry $ \case- (TipF, TipF) -> EQ- (TipF, BinF {}) -> LT- (BinF {}, TipF) -> GT- (BinF size k v l r, BinF size' k' v' l' r') ->- compare size size' <> compare k k' <> f v v' <> g l l' <> g r r'+ liftCompare2 = compareMapF compare +-- | @since 0.1.2.0+instance (Read k, Read v) => Read1 (MapF k v) where+ liftReadPrec = liftReadPrec2 readPrec readListPrec++-- | @since 0.1.2.0+instance (Read k) => Read2 (MapF k) where+ liftReadPrec2 readPrecV _ readPrecR _ =+ readMapFPrec readPrec readPrecV readPrecR++#if MIN_VERSION_base(4, 18, 0)+instance (Show k, Show v) => Show1 (MapF k v)+#else instance (Show k, Show v) => Show1 (MapF k v) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftShowsPrec = liftShowsPrec2 showsPrec showList+#endif instance (Show k) => Show2 (MapF k) where- liftShowsPrec2 showsPrecV _showListV showsPrecR _showListR prec =- let appPrec = 10- nextPrec = appPrec + 1- in \case- TipF -> showString "TipF"- BinF size k v l r ->- showParen (nextPrec <= prec) $- showString "BinF "- . showsPrec nextPrec size- . showString " "- . showsPrec nextPrec k- . showString " "- . showsPrecV nextPrec v- . showString " "- . showsPrecR nextPrec l- . showString " "- . showsPrecR nextPrec r+ liftShowsPrec2 showsPrecV _ showsPrecR _ =+ showsMapFPrec showsPrec showsPrecV showsPrecR
src/Yaya/Containers/Pattern/Set.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE Safe #-} {-# OPTIONS_GHC -Wno-orphans #-} @@ -6,26 +7,25 @@ ) where +import "base" Control.Applicative+ ( Alternative ((<|>)),+ Applicative ((<*>)),+ (*>),+ ) import "base" Control.Category (Category ((.))) import "base" Data.Bool (Bool (False, True), (&&)) import "base" Data.Eq (Eq ((==))) import "base" Data.Foldable (Foldable) import "base" Data.Function (($))-import "base" Data.Functor (Functor (fmap))-import "base" Data.Functor.Classes- ( Eq1 (liftEq),- Eq2 (liftEq2),- Ord1 (liftCompare),- Ord2 (liftCompare2),- Show1 (liftShowsPrec),- Show2 (liftShowsPrec2),- )+import "base" Data.Functor (Functor (fmap), (<$), (<$>)) import "base" Data.Ord (Ord (compare, (<=)), Ordering (EQ, GT, LT)) import "base" Data.Semigroup ((<>)) import "base" Data.Traversable (Traversable) import qualified "base" Data.Tuple as Tuple import "base" GHC.Generics (Generic, Generic1)-import "base" Text.Show (Show (showList, showsPrec), showParen, showString)+import "base" GHC.Read (Read (readListPrec, readPrec), expectP, parens)+import "base" Text.ParserCombinators.ReadPrec (prec, step)+import qualified "base" Text.Read.Lex as Lex import qualified "containers" Data.Set.Internal as Set import "yaya" Yaya.Fold ( Projectable (project),@@ -33,12 +33,39 @@ Steppable (embed), ) import "base" Prelude (Num ((+)))+#if MIN_VERSION_base(4, 18, 0)+import "base" Data.Functor.Classes+ ( Eq1,+ Eq2 (liftEq2),+ Ord1,+ Ord2 (liftCompare2),+ Read1 (liftReadPrec),+ Read2 (liftReadPrec2),+ Show1,+ Show2 (liftShowsPrec2),+ )+import "base" Text.Show (Show (showsPrec), showParen, showString)+#else+import "base" Data.Functor.Classes+ ( Eq1 (liftEq),+ Eq2 (liftEq2),+ Ord1 (liftCompare),+ Ord2 (liftCompare2),+ Read1 (liftReadPrec),+ Read2 (liftReadPrec2),+ Show1 (liftShowsPrec),+ Show2 (liftShowsPrec2),+ )+import "base" Text.Show (Show (showList, showsPrec), showParen, showString)+#endif data SetF a r = TipF | BinF Set.Size a r r deriving stock ( Eq, Ord, Generic,+ -- | @since 0.1.2.0+ Read, Show, Foldable, Functor,@@ -57,10 +84,12 @@ embed TipF = Set.Tip embed (BinF size a l r) = Set.Bin size a l r +#if MIN_VERSION_base(4, 18, 0)+instance (Eq a) => Eq1 (SetF a)+#else instance (Eq a) => Eq1 (SetF a) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftEq = liftEq2 (==)+#endif instance Eq2 SetF where liftEq2 f g = Tuple.curry $ \case@@ -69,10 +98,12 @@ size == size' && f a a' && g l l' && g r r' (_, _) -> False +#if MIN_VERSION_base(4, 18, 0)+instance (Ord a) => Ord1 (SetF a)+#else instance (Ord a) => Ord1 (SetF a) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftCompare = liftCompare2 compare+#endif instance Ord2 SetF where liftCompare2 f g = Tuple.curry $ \case@@ -82,19 +113,40 @@ (BinF size a l r, BinF size' a' l' r') -> compare size size' <> f a a' <> g l l' <> g r r' +-- | @since 0.1.2.0+instance (Read a) => Read1 (SetF a) where+ liftReadPrec = liftReadPrec2 readPrec readListPrec++-- | @since 0.1.2.0+instance Read2 SetF where+ liftReadPrec2 readPrecA _ readPrecR _ =+ let appPrec = 10+ in parens . prec appPrec $+ TipF+ <$ expectP (Lex.Ident "TipF")+ <|> expectP (Lex.Ident "BinF")+ *> ( BinF+ <$> step readPrec+ <*> step readPrecA+ <*> step readPrecR+ <*> step readPrecR+ )++#if MIN_VERSION_base(4, 18, 0)+instance (Show a) => Show1 (SetF a)+#else instance (Show a) => Show1 (SetF a) where- -- TODO: Remove this once base-4.18 is the oldest supported verson, as it’s- -- the default impl. liftShowsPrec = liftShowsPrec2 showsPrec showList+#endif instance Show2 SetF where- liftShowsPrec2 showsPrecA _showListA showsPrecR _showListR prec =+ liftShowsPrec2 showsPrecA _ showsPrecR _ p = let appPrec = 10 nextPrec = appPrec + 1 in \case TipF -> showString "TipF" BinF size a l r ->- showParen (nextPrec <= prec) $+ showParen (nextPrec <= p) $ showString "BinF " . showsPrec nextPrec size . showString " "
yaya-containers.cabal view
@@ -1,7 +1,7 @@ cabal-version: 3.0 name: yaya-containers-version: 0.1.1.0+version: 0.1.2.0 synopsis: Pattern functors and instances for types in the containers package. author: Greg Pfeil <greg@technomadic.org> maintainer: Greg Pfeil <greg@technomadic.org>@@ -152,7 +152,7 @@ Yaya.Containers.Pattern.Set build-depends: containers ^>= {0.6.0},- yaya ^>= {0.6.0},+ yaya ^>= {0.5.1, 0.6.0}, ghc-options: -trust adjunctions -trust array