]> Git — Sourcephile - haskell/treeseq.git/commitdiff
Add deepseq dependency master
authorJulien Moutinho <julm@sourcephile.fr>
Thu, 23 Apr 2020 11:32:23 +0000 (13:32 +0200)
committerJulien Moutinho <julm@sourcephile.fr>
Thu, 23 Apr 2020 11:35:53 +0000 (13:35 +0200)
Data/TreeSeq/Strict.hs
treeseq.cabal

index 0f8b230f8f15cc293f3f04eb6ce0f43bd6cb6f74..697d82bb9a3778387353b55d8a95248ac09558b3 100644 (file)
@@ -2,7 +2,9 @@
 module Data.TreeSeq.Strict where
 
 import Control.Applicative (Applicative(..))
+import Control.DeepSeq (NFData(..))
 import Control.Monad (Monad(..))
+import Data.Bool
 import Data.Eq (Eq(..))
 import Data.Foldable (Foldable(..))
 import Data.Function (($), (.))
@@ -11,8 +13,10 @@ import Data.Monoid (Monoid(..))
 import Data.Ord (Ord(..))
 import Data.Semigroup (Semigroup(..))
 import Data.Sequence (Seq, ViewL(..))
+import Data.String (String)
 import Data.Traversable (Traversable(..))
 import GHC.Generics (Generic)
+import Prelude (seq)
 import Text.Show (Show(..))
 import qualified Data.List as List
 import qualified Data.Sequence as Seq
@@ -39,6 +43,8 @@ instance Foldable Tree where
 instance Traversable Tree where
        traverse f (Tree a ts) = Tree <$> f a <*> traverse (traverse f) ts
        sequenceA  (Tree a ts) = Tree <$>   a <*> traverse sequenceA ts
+instance NFData a => NFData (Tree a) where
+       rnf (Tree a ts) = rnf a `seq` rnf ts
 
 tree0 :: a -> Tree a
 tree0 a = Tree a mempty
index f73e2f98815a3685f90e6c075eb1380e5ae5b923..35e6eea43e0a147cdec89369f147f4006200426b 100644 (file)
@@ -43,3 +43,4 @@ Library
   build-depends:
       base       >= 4.10 && < 5
     , containers >= 0.5
+    , deepseq    >= 1.4