{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Binary.Instances.UnorderedContainers where

import Data.Binary         (Binary, get, put)
import Data.Binary.Orphans ()

import qualified Data.Hashable     as Hashable
import qualified Data.HashMap.Lazy as HM
import qualified Data.HashSet      as HS

instance  (Hashable.Hashable k, Eq k, Binary k, Binary v) => Binary (HM.HashMap k v) where
    get = fmap HM.fromList get
    put = put . HM.toList

instance (Hashable.Hashable v, Eq v, Binary v) => Binary (HS.HashSet v) where
    get = fmap HS.fromList get
    put = put . HS.toList