fastmemo-0.1.1: src/Data/Function/FastMemo/Containers.hs
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Data.Function.FastMemo.Containers () where
import Data.Function.FastMemo.Class (Memoizable (..))
import Data.Function.FastMemo.Int ()
import Data.Function.FastMemo.List (AsList (..))
import Data.IntMap (IntMap)
import Data.IntSet (IntSet)
import Data.Map (Map)
import Data.Sequence (Seq)
import qualified Data.Sequence as Seq
import Data.Set (Set)
import Data.Tree (Tree)
deriving via AsList (Map a b) instance (Ord a, Memoizable a, Memoizable b) => Memoizable (Map a b)
deriving via AsList (Set a) instance (Ord a, Memoizable a) => Memoizable (Set a)
deriving via AsList (IntMap b) instance (Memoizable b) => Memoizable (IntMap b)
deriving via AsList IntSet instance Memoizable IntSet
deriving via AsList (Seq a) instance Memoizable a => Memoizable (Seq a)
instance Memoizable a => Memoizable (Seq.ViewL a)
instance Memoizable a => Memoizable (Seq.ViewR a)
instance Memoizable a => Memoizable (Tree a)