namespace 0.1.3.0 → 0.1.4.0
raw patch · 3 files changed
+13/−7 lines, 3 filesdep ~basedep ~monoid-extrasPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, monoid-extras
API changes (from Hackage documentation)
+ Data.Namespace.Namespace: instance Data.Namespace.Path.Key k => GHC.Base.Semigroup (Data.Namespace.Namespace.Namespace k a)
+ Data.Namespace.Path: instance Data.Namespace.Path.Key k => GHC.Base.Semigroup (Data.Namespace.Path.NamespacePath k)
Files
- namespace.cabal +5/−5
- src/Data/Namespace/Namespace.hs +4/−1
- src/Data/Namespace/Path.hs +4/−1
namespace.cabal view
@@ -1,13 +1,13 @@ name: namespace-version: 0.1.3.0+version: 0.1.4.0 synopsis: A Generic Haskell library for managing namespaces description: Please see README.md homepage: https://github.com/xu-hao/namespace license: BSD3 license-file: LICENSE author: Hao Xu-maintainer: xuh@email.unc.edu-copyright: 2016 Hao Xu+maintainer: xuh@cs.unc.edu+copyright: 2016-2018 Hao Xu category: Data build-type: Simple -- extra-source-files:@@ -16,8 +16,8 @@ library hs-source-dirs: src exposed-modules: Data.Namespace.Namespace Data.Namespace.Path- build-depends: base >= 4.7 && < 5,- monoid-extras >= 0.1 && < 0.5,+ build-depends: base >= 4.9 && < 5,+ monoid-extras >= 0.5 && < 0.6, containers >= 0.5 && < 0.6 default-language: Haskell2010
src/Data/Namespace/Namespace.hs view
@@ -13,6 +13,7 @@ import Prelude hiding (lookup) import Data.Map.Strict (lookup, insert, foldlWithKey, mapKeys, mapWithKey, unionWith, toList, Map, elems)+import Data.Semigroup import Data.Monoid import Data.Monoid.Action (act) import Data.Maybe@@ -38,9 +39,11 @@ (Namespace nm om) <- lookupNamespace np n lookup k om +instance Key k => Semigroup (Namespace k a) where+ (<>) (Namespace nm om) (Namespace nm2 om2) = Namespace (unionWith mappend nm nm2) (om <> om2)+ instance Key k => Monoid (Namespace k a) where mempty = Namespace mempty mempty- mappend (Namespace nm om) (Namespace nm2 om2) = Namespace (unionWith mappend nm nm2) (om <> om2) topLevelObjects :: Key k => Namespace k a -> Map k a topLevelObjects (Namespace _ om) = om
src/Data/Namespace/Path.hs view
@@ -6,6 +6,7 @@ import Prelude hiding (lookup) import Data.Map.Strict+import Data.Semigroup import Data.Monoid import Data.Monoid.Action @@ -30,9 +31,11 @@ extendNamespacePath :: Key k => NamespacePath k -> k -> NamespacePath k extendNamespacePath (NamespacePath p) k = NamespacePath (p <> [k]) +instance Key k => Semigroup (NamespacePath k) where+ (<>) (NamespacePath p1) (NamespacePath p2) = NamespacePath (p1 <> p2)+ instance Key k => Monoid (NamespacePath k) where mempty = NamespacePath mempty- mappend (NamespacePath p1) (NamespacePath p2) = NamespacePath (p1 <> p2) concatNamespacePathWithObjectPath :: Key k => NamespacePath k -> ObjectPath k -> ObjectPath k concatNamespacePathWithObjectPath np (ObjectPath np2 k) = ObjectPath (np <> np2) k