{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -fno-warn-orphans #-} #if __GLASGOW_HASKELL__ >= 706 {-# LANGUAGE PolyKinds #-} #endif module Data.Binary.Instances.Tagged where import Data.Binary (Binary, get, put) import Data.Binary.Orphans () import qualified Data.Tagged as Tagged instance Binary b => Binary (Tagged.Tagged s b) where put :: Tagged s b -> Put put = b -> Put forall t. Binary t => t -> Put put (b -> Put) -> (Tagged s b -> b) -> Tagged s b -> Put forall b c a. (b -> c) -> (a -> b) -> a -> c . Tagged s b -> b forall k (s :: k) b. Tagged s b -> b Tagged.unTagged get :: Get (Tagged s b) get = (b -> Tagged s b) -> Get b -> Get (Tagged s b) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap b -> Tagged s b forall k (s :: k) b. b -> Tagged s b Tagged.Tagged Get b forall t. Binary t => Get t get