-instance Lift MIMEParams where
- lift (MIMEParams m) = [| MIMEParams $(liftParams m) |]
- where
- liftParams ∷ Map CIAscii Text → Q Exp
- liftParams = liftMap liftCIAscii liftText
+C.derive [d| instance Unfoldable MIMEParams (CIAscii, Text)
+ instance Foldable MIMEParams (CIAscii, Text)
+ instance Collection MIMEParams (CIAscii, Text)
+ instance Indexed MIMEParams CIAscii Text
+ -- instance Map MIMEParams CIAscii Text
+ instance SortingCollection MIMEParams (CIAscii, Text)
+ |]
+
+-- FIXME: auto-derive
+instance Map MIMEParams CIAscii Text where
+ {-# INLINE lookup #-}
+ lookup k (MIMEParams m) = lookup k m
+ {-# INLINE mapWithKey #-}
+ mapWithKey f (MIMEParams m)
+ = MIMEParams $ mapWithKey f m
+ {-# INLINE unionWith #-}
+ unionWith f (MIMEParams α) (MIMEParams β)
+ = MIMEParams $ unionWith f α β
+ {-# INLINE intersectionWith #-}
+ intersectionWith f (MIMEParams α) (MIMEParams β)
+ = MIMEParams $ intersectionWith f α β
+ {-# INLINE differenceWith #-}
+ differenceWith f (MIMEParams α) (MIMEParams β)
+ = MIMEParams $ differenceWith f α β
+ {-# INLINE isSubmapBy #-}
+ isSubmapBy f (MIMEParams α) (MIMEParams β)
+ = isSubmapBy f α β
+ {-# INLINE isProperSubmapBy #-}
+ isProperSubmapBy f (MIMEParams α) (MIMEParams β)
+ = isProperSubmapBy f α β