MemoTrie 0.6.7 → 0.6.8
raw patch · 2 files changed
+13/−3 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.MemoTrie: instance Control.Newtype.Newtype (GHC.Base.Maybe a Data.MemoTrie.:->: x)
+ Data.MemoTrie: instance Data.MemoTrie.HasTrie a => Data.MemoTrie.HasTrie (GHC.Base.Maybe a)
Files
- MemoTrie.cabal +2/−2
- src/Data/MemoTrie.hs +11/−1
MemoTrie.cabal view
@@ -1,5 +1,5 @@ Name: MemoTrie-Version: 0.6.7+Version: 0.6.8 Cabal-Version: >= 1.10 Synopsis: Trie-based memo functions Category: Data@@ -14,7 +14,7 @@ Homepage: https://github.com/conal/MemoTrie Author: Conal Elliott Maintainer: conal@conal.net-Copyright: (c) 2008-2015 by Conal Elliott+Copyright: (c) 2008-2016 by Conal Elliott License: BSD3 License-File: COPYING Stability: experimental
src/Data/MemoTrie.hs view
@@ -9,7 +9,7 @@ ---------------------------------------------------------------------- -- | -- Module : Data.MemoTrie--- Copyright : (c) Conal Elliott 2008-2012+-- Copyright : (c) Conal Elliott 2008-2016 -- License : BSD3 -- -- Maintainer : conal@conal.net@@ -315,6 +315,16 @@ BoolTrie f t -} +instance HasTrie a => HasTrie (Maybe a) where+ data (:->:) (Maybe a) b = MaybeTrie b (a :->: b)+ trie f = MaybeTrie (f Nothing) (trie (f . Just))+ untrie (MaybeTrie nothing_val a_trie) = maybe nothing_val (untrie a_trie)+ enumerate (MaybeTrie nothing_val a_trie) = (Nothing, nothing_val) : enum' Just a_trie++instance Newtype (Maybe a :->: x) where+ type O (Maybe a :->: x) = (x, a :->: x)+ pack (a,f) = MaybeTrie a f+ unpack (MaybeTrie a f) = (a,f) instance (HasTrie a, HasTrie b) => HasTrie (Either a b) where data (Either a b) :->: x = EitherTrie (a :->: x) (b :->: x)