fixplate 0.1.7 → 0.1.8
raw patch · 7 files changed
+23/−10 lines, 7 filesdep ~basedep ~fixplatePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base, fixplate
API changes (from Hackage documentation)
+ Data.Generics.Fixplate: infix 4 `elem`
+ Data.Generics.Fixplate: infixl 4 <$
+ Data.Generics.Fixplate.Functor: infixl 6 :+:
+ Data.Generics.Fixplate.Functor: infixl 7 :*:
- Data.Generics.Fixplate: (<$) :: a -> f b -> f a
+ Data.Generics.Fixplate: (<$) :: Functor f => a -> f b -> f a
- Data.Generics.Fixplate: class Foldable (t :: * -> *)
+ Data.Generics.Fixplate: class Foldable (t :: Type -> Type)
- Data.Generics.Fixplate: class Functor (f :: * -> *)
+ Data.Generics.Fixplate: class Functor (f :: Type -> Type)
- Data.Generics.Fixplate: class (Functor t, Foldable t) => Traversable (t :: * -> *)
+ Data.Generics.Fixplate: class (Functor t, Foldable t) => Traversable (t :: Type -> Type)
- Data.Generics.Fixplate: elem :: Eq a => a -> t a -> Bool
+ Data.Generics.Fixplate: elem :: (Foldable t, Eq a) => a -> t a -> Bool
- Data.Generics.Fixplate: fmap :: (a -> b) -> f a -> f b
+ Data.Generics.Fixplate: fmap :: Functor f => (a -> b) -> f a -> f b
- Data.Generics.Fixplate: foldMap :: Monoid m => (a -> m) -> t a -> m
+ Data.Generics.Fixplate: foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
- Data.Generics.Fixplate: foldl :: (b -> a -> b) -> b -> t a -> b
+ Data.Generics.Fixplate: foldl :: Foldable t => (b -> a -> b) -> b -> t a -> b
- Data.Generics.Fixplate: foldl1 :: (a -> a -> a) -> t a -> a
+ Data.Generics.Fixplate: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
- Data.Generics.Fixplate: foldr :: (a -> b -> b) -> b -> t a -> b
+ Data.Generics.Fixplate: foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
- Data.Generics.Fixplate: foldr1 :: (a -> a -> a) -> t a -> a
+ Data.Generics.Fixplate: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
- Data.Generics.Fixplate: length :: t a -> Int
+ Data.Generics.Fixplate: length :: Foldable t => t a -> Int
- Data.Generics.Fixplate: mapM :: Monad m => (a -> m b) -> t a -> m (t b)
+ Data.Generics.Fixplate: mapM :: (Traversable t, Monad m) => (a -> m b) -> t a -> m (t b)
- Data.Generics.Fixplate: maximum :: Ord a => t a -> a
+ Data.Generics.Fixplate: maximum :: (Foldable t, Ord a) => t a -> a
- Data.Generics.Fixplate: minimum :: Ord a => t a -> a
+ Data.Generics.Fixplate: minimum :: (Foldable t, Ord a) => t a -> a
- Data.Generics.Fixplate: null :: t a -> Bool
+ Data.Generics.Fixplate: null :: Foldable t => t a -> Bool
- Data.Generics.Fixplate: product :: Num a => t a -> a
+ Data.Generics.Fixplate: product :: (Foldable t, Num a) => t a -> a
- Data.Generics.Fixplate: sequence :: Monad m => t (m a) -> m (t a)
+ Data.Generics.Fixplate: sequence :: (Traversable t, Monad m) => t (m a) -> m (t a)
- Data.Generics.Fixplate: sequenceA :: Applicative f => t (f a) -> f (t a)
+ Data.Generics.Fixplate: sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
- Data.Generics.Fixplate: sum :: Num a => t a -> a
+ Data.Generics.Fixplate: sum :: (Foldable t, Num a) => t a -> a
- Data.Generics.Fixplate: traverse :: Applicative f => (a -> f b) -> t a -> f (t b)
+ Data.Generics.Fixplate: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
- Data.Generics.Fixplate.Base: CoAnn :: (f b) -> CoAnn f a b
+ Data.Generics.Fixplate.Base: CoAnn :: f b -> CoAnn f a b
- Data.Generics.Fixplate.Draw: graphvizTreeWith :: (Traversable f) => (f Hole -> String) -> Mu f -> String
+ Data.Generics.Fixplate.Draw: graphvizTreeWith :: Traversable f => (f Hole -> String) -> Mu f -> String
- Data.Generics.Fixplate.Functor: (:*:) :: (f a) -> (g a) -> (:*:) f g a
+ Data.Generics.Fixplate.Functor: (:*:) :: f a -> g a -> (:*:) f g a
- Data.Generics.Fixplate.Functor: InL :: (f a) -> (:+:) f g a
+ Data.Generics.Fixplate.Functor: InL :: f a -> (:+:) f g a
- Data.Generics.Fixplate.Functor: InR :: (g a) -> (:+:) f g a
+ Data.Generics.Fixplate.Functor: InR :: g a -> (:+:) f g a
- Data.Generics.Fixplate.Functor: data (:*:) f g a
+ Data.Generics.Fixplate.Functor: data ( f :*: g ) a
- Data.Generics.Fixplate.Hash: HashAnn :: hash -> (f a) -> HashAnn hash f a
+ Data.Generics.Fixplate.Hash: HashAnn :: hash -> f a -> HashAnn hash f a
- Data.Generics.Fixplate.Morphisms: hylo :: Functor f => (f a -> a) -> (b -> f b) -> (b -> a)
+ Data.Generics.Fixplate.Morphisms: hylo :: Functor f => (f a -> a) -> (b -> f b) -> b -> a
- Data.Generics.Fixplate.Open: toList :: Foldable t => forall a. t a -> [a]
+ Data.Generics.Fixplate.Open: toList :: Foldable t => t a -> [a]
- Data.Generics.Fixplate.Pretty: class (Functor f, Foldable f) => Pretty f where showsPrecNode child d node = showParen (d > prec) $ case fty of { Atom -> showString (showNode node) Application style -> case style of { Haskell -> head . args where head = showString (showNode node) args = foldr (.) id [showChar ' ' . child (prec + 1) c | c <- children] Algol (Bracket open close) sep -> head . showString open . args . showString close where head = showString (showNode node) args = foldr (.) id $ intersperse (showString sep) [child 0 c | c <- children] } Prefix prec -> case children of { [] -> error "showsPrecNode: prefix node with no arguments" (c : cs) -> op . arg1 c . args cs } where op = showString (showNode node) arg1 c = child (prec + 1) c args cs = foldr (.) id [showChar ' ' . child (prec + 1) c | c <- cs] Postfix prec -> case children of { [] -> error "showsPrecNode: postfix node with no arguments" ccs -> let (cs, c) = (init ccs, last ccs) in args cs . arg1 c . op } where op = showString (showNode node) arg1 c = child (prec + 1) c args cs = foldr (.) id [child (prec + 1) c . showChar ' ' | c <- cs] Infix assoc prec -> case children of { [] -> error "showsPrecNode: infix node with no arguments" [_] -> error "showsPrecNode: infix node with a single argument" (c1 : c2 : cs) -> lhs c1 . op . rhs c2 . rest cs } where lhs c1 = child lprec c1 op = showString (showNode node) rhs c2 = child rprec c2 rest cs = foldr (.) id [showChar ' ' . child (prec + 1) c | c <- cs] lprec = case assoc of { LeftAssoc -> prec _ -> prec + 1 } rprec = case assoc of { RightAssoc -> prec _ -> prec + 1 } Mixfix mwords -> mixWords mwords [child (prec + 1) c | c <- children] Custom prec -> error "for custom rendering, you should redefine `showsPrecNode'" } where fty = fixity node prec = fixityPrecedence fty children = toList node
+ Data.Generics.Fixplate.Pretty: class (Functor f, Foldable f) => Pretty f
Files
- Data/Generics/Fixplate/Misc.hs +8/−0
- fixplate.cabal +7/−7
- tests/TestSuite/Instances.hs +1/−0
- tests/TestSuite/Misc.hs +6/−0
- tests/TestSuite/Morphisms.hs +0/−2
- tests/TestSuite/Tools.hs +1/−0
- tests/TestSuite/Traversals.hs +0/−1
Data/Generics/Fixplate/Misc.hs view
@@ -1,5 +1,7 @@ -- | Miscellaneous utility functions + +{-# LANGUAGE CPP #-} module Data.Generics.Fixplate.Misc where -------------------------------------------------------------------------------- @@ -122,7 +124,13 @@ m >>= k = StateT $ \s -> do ~(a, s') <- runStateT m s runStateT (k a) s' + +#if MIN_VERSION_base(4,13,0) +instance MonadFail m => MonadFail (StateT s m) where fail str = StateT $ \_ -> fail str +#else + fail str = StateT $ \_ -> fail str +#endif state :: (Monad m) => (s -> (a,s)) -> StateT s m a state f = StateT (return . f)
fixplate.cabal view
@@ -1,6 +1,6 @@ Name: fixplate-Version: 0.1.7+Version: 0.1.8 Synopsis: Uniplate-style generic traversals for optionally annotated fixed-point types. Description: Uniplate-style generic traversals for fixed-point types, which can be optionally annotated with attributes. We also provide recursion schemes,@@ -10,21 +10,21 @@ License: BSD3 License-file: LICENSE Author: Balazs Komuves-Copyright: (c) 2011-2016 Balazs Komuves+Copyright: (c) 2011-2019 Balazs Komuves Maintainer: bkomuves (plus) hackage (at) gmail (dot) com Homepage: http://code.haskell.org/~bkomuves/ Stability: Experimental Category: Generics-Tested-With: GHC == 7.10.3-Cabal-Version: >= 1.10+Tested-With: GHC == 8.6.5, GHC == 8.8.1+Cabal-Version: 1.24 Build-Type: Simple ---------------------------------------- source-repository head type: darcs- location: http://code.haskell.org/~bkomuves/projects/fixplate/-+ location: https://hub.darcs.net/bkomuves/fixplate+ -- Flag withUtils -- Description: Include utility modules -- default: True@@ -91,7 +91,7 @@ build-depends: base >= 4 && < 5, containers, QuickCheck >= 2, tasty, tasty-quickcheck,- fixplate+ fixplate >= 0.1.8 Default-Language: Haskell2010 Default-Extensions: CPP, BangPatterns, TypeSynonymInstances
tests/TestSuite/Instances.hs view
@@ -18,6 +18,7 @@ import Data.Generics.Fixplate.Base -- import Data.Generics.Fixplate.Misc + import TestSuite.Tools import TestSuite.Misc
tests/TestSuite/Misc.hs view
@@ -124,7 +124,13 @@ m >>= k = StateT $ \s -> do ~(a, s') <- runStateT m s runStateT (k a) s' + +#if MIN_VERSION_base(4,13,0) +instance MonadFail m => MonadFail (StateT s m) where fail str = StateT $ \_ -> fail str +#else + fail str = StateT $ \_ -> fail str +#endif state :: (Monad m) => (s -> (a,s)) -> StateT s m a state f = StateT (return . f)
tests/TestSuite/Morphisms.hs view
@@ -19,9 +19,7 @@ import Data.Generics.Fixplate.Base -- import Data.Generics.Fixplate.Misc --- import Data.Generics.Fixplate.Attributes import Data.Generics.Fixplate.Morphisms --- import Data.Generics.Fixplate.Traversals import TestSuite.Tools import TestSuite.Misc
tests/TestSuite/Tools.hs view
@@ -20,6 +20,7 @@ import Text.Read import Data.Generics.Fixplate.Base +-- import Data.Generics.Fixplate.Misc import Test.QuickCheck import TestSuite.Misc
tests/TestSuite/Traversals.hs view
@@ -17,7 +17,6 @@ import Data.Generics.Fixplate.Base -- import Data.Generics.Fixplate.Misc --- import Data.Generics.Fixplate.Attributes import Data.Generics.Fixplate.Morphisms import Data.Generics.Fixplate.Traversals