data-clist 0.0.7.4 → 0.1.0.0
raw patch · 2 files changed
+17/−1 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.CircularList: instance Arbitrary a => Arbitrary (CList a)
- Data.CircularList: instance Eq a => Eq (CList a)
- Data.CircularList: instance Functor CList
- Data.CircularList: instance NFData a => NFData (CList a)
- Data.CircularList: instance Read a => Read (CList a)
- Data.CircularList: instance Show a => Show (CList a)
+ Data.CircularList: instance Control.DeepSeq.NFData a => Control.DeepSeq.NFData (Data.CircularList.CList a)
+ Data.CircularList: instance Data.Foldable.Foldable Data.CircularList.CList
+ Data.CircularList: instance Data.Traversable.Traversable Data.CircularList.CList
+ Data.CircularList: instance GHC.Base.Functor Data.CircularList.CList
+ Data.CircularList: instance GHC.Classes.Eq a => GHC.Classes.Eq (Data.CircularList.CList a)
+ Data.CircularList: instance GHC.Read.Read a => GHC.Read.Read (Data.CircularList.CList a)
+ Data.CircularList: instance GHC.Show.Show a => GHC.Show.Show (Data.CircularList.CList a)
+ Data.CircularList: instance Test.QuickCheck.Arbitrary.Arbitrary a => Test.QuickCheck.Arbitrary.Arbitrary (Data.CircularList.CList a)
- Data.CircularList: rotateTo :: Eq a => a -> CList a -> Maybe (CList a)
+ Data.CircularList: rotateTo :: (Eq a) => a -> CList a -> Maybe (CList a)
Files
- data-clist.cabal +1/−1
- src/Data/CircularList.hs +16/−0
data-clist.cabal view
@@ -5,7 +5,7 @@ Given that the ring terminiology clashes with certain mathematical branches, we're using the term CList or CircularList instead.-Version: 0.0.7.4+Version: 0.1.0.0 License: BSD3 License-File: LICENSE Author: John Van Enk <vanenkj@gmail.com>
src/Data/CircularList.hs view
@@ -69,12 +69,18 @@ isEmpty, size, ) where +import Control.Applicative hiding (empty)+import Prelude import Data.List(find,unfoldr,foldl') import Control.DeepSeq(NFData(..)) import Control.Monad(join)+import qualified Data.Traversable as T+import qualified Data.Foldable as F+ import Test.QuickCheck.Arbitrary import Test.QuickCheck.Gen + -- | A functional ring type. data CList a = Empty | CList [a] a [a]@@ -349,3 +355,13 @@ instance Functor CList where fmap _ Empty = Empty fmap fn (CList l f r) = (CList (fmap fn l) (fn f) (fmap fn r))++instance F.Foldable CList where+ foldMap = T.foldMapDefault++instance T.Traversable CList where+ -- | traverses the list from left to right, starting at the focus+ traverse _ Empty = pure Empty+ traverse g (CList l f r) = (\f' r' l' -> CList l' f' r') <$> g f+ <*> T.traverse g r+ <*> T.traverse g l