praglude 0.1.2.0 → 0.2.0.0
raw patch · 2 files changed
+28/−30 lines, 2 filesdep ~aesondep ~basedep ~base64-bytestringPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: aeson, base, base64-bytestring, bytestring, casing, containers, data-default, deepseq, directory, filepath, hashable, lens, mtl, random, semigroups, string-convert, template-haskell, text, time, unordered-containers, vector
API changes (from Hackage documentation)
- Praglude: instance (Data.Hashable.Class.Hashable v, Data.Hashable.Class.Hashable k) => Data.Hashable.Class.Hashable (Praglude.LHashMap k v)
- Praglude: parseJSONList :: FromJSON a => Value -> Parser [a]
- Praglude: toEncodingList :: ToJSON a => [a] -> Encoding
- Praglude: toJSONList :: ToJSON a => [a] -> Value
- Praglude: update :: DictLike m k => k -> (v -> Maybe v) -> m k v -> m k v
+ Praglude: adjust :: DictLike m k => k -> (v -> v) -> m k v -> m k v
- Praglude: ilike :: (Indexable i p, Contravariant f, Functor f) => i -> a -> Over' p f s a
+ Praglude: ilike :: (Indexable i p, Contravariant f) => i -> a -> Over' p f s a
- Praglude: ito :: (Indexable i p, Contravariant f, Functor f) => (s -> (i, a)) -> Over' p f s a
+ Praglude: ito :: (Indexable i p, Contravariant f) => (s -> (i, a)) -> Over' p f s a
- Praglude: like :: (Profunctor p, Contravariant f, Functor f) => a -> Optic' * * p f s a
+ Praglude: like :: (Profunctor p, Contravariant f) => a -> Optic' * * p f s a
- Praglude: re :: AReview t b -> Getter b t
+ Praglude: re :: Contravariant f => AReview t b -> LensLike' f b t
- Praglude: to :: (Profunctor p, Contravariant f, Functor f) => (s -> a) -> Optic' * * p f s a
+ Praglude: to :: (Profunctor p, Contravariant f) => (s -> a) -> Optic' * * p f s a
Files
- praglude.cabal +22/−23
- src/Praglude.hs +6/−7
praglude.cabal view
@@ -1,5 +1,5 @@ name: praglude-version: 0.1.2.0+version: 0.2.0.0 synopsis: A pragmatic Prelude description: An opinionated alternative Prelude, focused on practicality. homepage: https://github.com/tdammers/praglude@@ -10,33 +10,32 @@ copyright: 2016 Tobias Dammers category: Web build-type: Simple--- extra-source-files: cabal-version: >=1.10 library hs-source-dirs: src exposed-modules: Praglude- build-depends: base >= 4.7 && < 5- , aeson- , bytestring- , base64-bytestring- , casing- , containers- , data-default- , deepseq- , directory- , filepath- , hashable- , lens- , template-haskell- , mtl- , random- , semigroups- , string-convert- , text- , time- , unordered-containers- , vector+ build-depends: base >=4.9 && <5+ , aeson >=0.11.2.1 && <0.12+ , bytestring >=0.10.8.1 && <0.11+ , base64-bytestring >=1.0.0.1 && <1.1+ , casing >=0.1.0.1 && <0.2+ , containers >=0.5.7.1 && <0.6+ , data-default >=0.7.1.1 && <0.8+ , deepseq >=1.4.2.0 && <1.5+ , directory >=1.2.6.2 && <1.3+ , filepath >=1.4.1.0 && <1.5+ , hashable >=1.2.4.0 && <1.3+ , lens ==4.14.*+ , template-haskell >=2.11.0.0 && <2.12+ , mtl >=2.2.1 && <2.3+ , random ==1.1.*+ , semigroups >=0.18.2 && <0.19+ , string-convert >=3.0.1 && <3.1+ , text >=1.2.2.1 && <1.3+ , time >=1.1 && <2+ , unordered-containers >=0.2.7.1 && <0.3+ , vector >=0.11.0.0 && <0.12 default-language: Haskell2010 source-repository head
src/Praglude.hs view
@@ -1305,7 +1305,6 @@ import qualified Data.Aeson as JSON import qualified Data.Aeson.TH as JSON import Data.Default-import Data.List (foldl') import Control.Concurrent import Control.Exception import Data.Function@@ -1357,7 +1356,7 @@ -- we can tie laziness into the type itself (similar to how it works -- for 'Text' and 'ByteString'). newtype LHashMap k v = LHashMap { unLHashMap :: LHashMap.HashMap k v }- deriving (Read, Show, Typeable, Generic, Functor, Foldable, Traversable, Eq, Data, Semigroup, Monoid, NFData, Hashable)+ deriving (Read, Show, Typeable, Generic, Functor, Foldable, Traversable, Eq, Data, Semigroup, Monoid, NFData) type HashSet = HashSet.HashSet @@ -1523,7 +1522,7 @@ -- | Delete by key delete :: k -> m k v -> m k v -- | Modify an element at a key- update :: k -> (v -> Maybe v) -> m k v -> m k v+ adjust :: k -> (v -> v) -> m k v -> m k v -- | Convert to an association list (list of key/value pairs) pairs :: m k v -> [(k, v)] -- | Convert from an association list (list of key/value pairs)@@ -1543,7 +1542,7 @@ instance Eq k => DictLike AList k where insert k v (AList xs) = AList $ (k,v):xs delete k (AList xs) = AList $ filter ((/= k) . fst) xs- update k f (AList xs) = AList [ (k, fromMaybe v $ f v) | (k, v) <- xs ]+ adjust k f (AList xs) = AList [ (k', if k == k' then f v else v) | (k', v) <- xs ] pairs = unAList fromPairs = AList singletonMap k v = AList [(k, v)]@@ -1611,7 +1610,7 @@ instance (Eq k, Hashable k) => DictLike HashMap.HashMap k where insert = HashMap.insert delete = HashMap.delete- update = flip HashMap.update+ adjust = flip HashMap.adjust pairs = HashMap.toList fromPairs = HashMap.fromList keys = HashMap.keys@@ -1636,7 +1635,7 @@ instance (Eq k, Ord k) => DictLike Map.Map k where insert = Map.insert delete = Map.delete- update = flip Map.update+ adjust = flip Map.adjust pairs = Map.toList fromPairs = Map.fromList keys = Map.keys@@ -1661,7 +1660,7 @@ instance (Eq k, Hashable k) => DictLike LHashMap k where insert k v = overLHashMap $ LHashMap.insert k v delete k = overLHashMap $ LHashMap.delete k- update k f = overLHashMap $ LHashMap.update f k+ adjust k f = overLHashMap $ LHashMap.adjust f k pairs = LHashMap.toList . unLHashMap fromPairs = LHashMap . LHashMap.fromList keys = LHashMap.keys . unLHashMap