{-# LANGUAGE TemplateHaskell, QuasiQuotes #-} module Data.TrieMap.Representation (Repr(..), ReprT(..), Rep, RepT) where import Data.TrieMap.Rep import Data.TrieMap.Rep.Instances import Data.TrieMap.Rep.TH import Data.TrieMap.Regular.Rep import Data.TrieMap.Regular.Base import qualified Data.IntMap as IMap $(genRepT [d| instance ReprT IMap.IntMap where toRepTMap f m = List [(toRep k, f a) | (k, a) <- IMap.assocs m] fromRepTMap f (List xs) = IMap.fromDistinctAscList [(fromRep k, f a) | (k, a) <- xs] |])