Doesn't anyone know why these instances can't be derived using GeneralizedNewtypeDeriving? I think its limitation isn't reasonable at all...
Documentation
derive :: Q [Dec] -> Q [Dec]Source
Automatic newtype instance deriver for type classes defined by the collections-api package.
{-# LANGUAGE TemplateHaskell #-} module Foo (T) where import Data.Collections import Data.Collections.BaseInstances () import qualified Data.Collections.Newtype.TH as C import qualified Data.Map as M newtype T = T (M.MapInt
Bool
) C.derive [d| instanceUnfoldable
T (Int
,Bool
) instanceFoldable
T (Int
,Bool
) instanceIndexed
TInt
Bool
... |]
This function can derive the following instances:
-
Unfoldable
-
Foldable
-
Collection
-
Indexed
-
Map
-
Set
-
SortingCollection