From 0993516f32c0dd55a30cf4d686aa0ee955d335b8 Mon Sep 17 00:00:00 2001 From: Julien Moutinho Date: Thu, 23 Apr 2020 13:32:23 +0200 Subject: [PATCH] Add deepseq dependency --- Data/TreeSeq/Strict.hs | 6 ++++++ treeseq.cabal | 1 + 2 files changed, 7 insertions(+) diff --git a/Data/TreeSeq/Strict.hs b/Data/TreeSeq/Strict.hs index 0f8b230..697d82b 100644 --- a/Data/TreeSeq/Strict.hs +++ b/Data/TreeSeq/Strict.hs @@ -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 diff --git a/treeseq.cabal b/treeseq.cabal index f73e2f9..35e6eea 100644 --- a/treeseq.cabal +++ b/treeseq.cabal @@ -43,3 +43,4 @@ Library build-depends: base >= 4.10 && < 5 , containers >= 0.5 + , deepseq >= 1.4 -- 2.42.0