module Data.MonoidMap.QuickCheck.Instances.Function ()
where
import Data.Monoid.Null
( MonoidNull
)
import Data.MonoidMap
( MonoidMap
)
import Data.Ord
( Ord
)
import Test.QuickCheck
( Function (function)
, functionMap
)
import qualified Data.MonoidMap as MonoidMap
instance
( Function k
, Function v
, Ord k
, MonoidNull v
)
=> Function (MonoidMap k v)
where
function :: forall b. (MonoidMap k v -> b) -> MonoidMap k v :-> b
function = (MonoidMap k v -> Map k v)
-> (Map k v -> MonoidMap k v)
-> (MonoidMap k v -> b)
-> MonoidMap k v :-> b
forall b a c.
Function b =>
(a -> b) -> (b -> a) -> (a -> c) -> a :-> c
functionMap MonoidMap k v -> Map k v
forall k v. MonoidMap k v -> Map k v
MonoidMap.toMap Map k v -> MonoidMap k v
forall v k. MonoidNull v => Map k v -> MonoidMap k v
MonoidMap.fromMap