{-# LANGUAGE CPP #-} module DList where import Prelude () import Test.Hspec.Core.Compat newtype DList a = DList ([a] -> [a]) instance Monoid (DList a) where mempty :: DList a mempty = ([a] -> [a]) -> DList a forall a. ([a] -> [a]) -> DList a DList [a] -> [a] forall a. a -> a id #if MIN_VERSION_base(4,11,0) instance Semigroup (DList a) where #endif DList [a] -> [a] f #if MIN_VERSION_base(4,11,0) <> :: DList a -> DList a -> DList a <> #else `mappend` #endif DList [a] -> [a] g = ([a] -> [a]) -> DList a forall a. ([a] -> [a]) -> DList a DList ([a] -> [a] f ([a] -> [a]) -> ([a] -> [a]) -> [a] -> [a] forall b c a. (b -> c) -> (a -> b) -> a -> c . [a] -> [a] g) singleton :: a -> DList a singleton :: forall a. a -> DList a singleton a x = ([a] -> [a]) -> DList a forall a. ([a] -> [a]) -> DList a DList (a x a -> [a] -> [a] forall a. a -> [a] -> [a] :) fromList :: [a] -> DList a fromList :: forall a. [a] -> DList a fromList [a] xs = ([a] -> [a]) -> DList a forall a. ([a] -> [a]) -> DList a DList ([a] xs [a] -> [a] -> [a] forall a. [a] -> [a] -> [a] ++) toList :: DList a -> [a] toList :: forall a. DList a -> [a] toList (DList [a] -> [a] f) = [a] -> [a] f []