packages feed

namespace 0.1.1.0 → 0.1.2.0

raw patch · 3 files changed

+11/−5 lines, 3 filesdep +monoid-extrasdep ~containersPVP ok

version bump matches the API change (PVP)

Dependencies added: monoid-extras

Dependency ranges changed: containers

API changes (from Hackage documentation)

+ Data.Namespace.Path: instance Data.Namespace.Path.Key k => Data.Monoid.Action.Action (Data.Namespace.Path.NamespacePath k) (Data.Namespace.Path.ObjectPath k)

Files

namespace.cabal view
@@ -1,5 +1,5 @@ name:                namespace-version:             0.1.1.0+version:             0.1.2.0 synopsis:            A Generic Haskell library for managing namespaces description:         Please see README.md homepage:            https://github.com/xu-hao/namespace@@ -17,7 +17,8 @@   hs-source-dirs:      src   exposed-modules:     Data.Namespace.Namespace Data.Namespace.Path   build-depends:       base >= 4.7 && < 5,-                       containers+                       monoid-extras >= 0.1 && < 0.5,+                       containers >= 0.5 && < 0.6   default-language:    Haskell2010  test-suite namespace-test
src/Data/Namespace/Namespace.hs view
@@ -9,6 +9,7 @@ import Prelude hiding (lookup) import Data.Map.Strict import Data.Monoid+import Data.Monoid.Action (act) import Data.Maybe import Control.Monad import Control.Applicative@@ -42,10 +43,10 @@ topLevelNamespaces (Namespace nm _) = nm  concatKey :: Key k => k -> Map (ObjectPath k) a -> Map (ObjectPath k) a-concatKey key = foldrWithKey (\key2 o m -> insert (concatNamespacePathWithObjectPath (NamespacePath [key]) key2) o m ) mempty+concatKey key = mapKeys (act (NamespacePath [key]))  pathKey :: Key k => Map k a -> Map (ObjectPath k) a-pathKey = foldrWithKey (\key o m -> insert (ObjectPath (NamespacePath []) key) o m ) mempty+pathKey = mapKeys (ObjectPath (NamespacePath []))  allObjects :: Key k => Namespace k a -> Map (ObjectPath k) a allObjects ns = pathKey (topLevelObjects ns) <> mconcat (elems (mapWithKey (\key ns2 -> concatKey key (allObjects ns2)) (topLevelNamespaces ns)))
src/Data/Namespace/Path.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE RankNTypes, GADTs, StandaloneDeriving, FlexibleInstances, PatternSynonyms #-}+{-# LANGUAGE RankNTypes, GADTs, StandaloneDeriving, FlexibleInstances, MultiParamTypeClasses #-}  module Data.Namespace.Path     ( NamespacePath(..), ObjectPath(..), extendNamespacePath, concatNamespacePathWithObjectPath, qualified, Key,@@ -7,6 +7,7 @@ import Prelude hiding (lookup) import Data.Map.Strict import Data.Monoid+import Data.Monoid.Action  class Ord k => Key k where @@ -35,6 +36,9 @@  concatNamespacePathWithObjectPath :: Key k => NamespacePath k -> ObjectPath k -> ObjectPath k concatNamespacePathWithObjectPath np (ObjectPath np2 k) = ObjectPath (np <> np2) k++instance Key k => Action (NamespacePath k) (ObjectPath k) where+  act = concatNamespacePathWithObjectPath  qualified :: Key k => ObjectPath k -> Bool qualified (ObjectPath (NamespacePath []) _) = False