dependent-sum-0.2.0.2: src/Data/Dependent/Sum/Typeable.hs
{-# LANGUAGE CPP #-}
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702
{-# LANGUAGE Trustworthy #-}
#endif
-- |Separate module for Typeable declaration, to minimize the amount of
-- visual inspection required to determine that this package is "safe"
--
-- This separation is not necessary with base >= 4.7, so this module will
-- not be compiled at all with GHC >= 7.8.
module Data.Dependent.Sum.Typeable where
import {-# SOURCE #-} Data.Dependent.Sum
import Data.Typeable
#if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 702
instance Typeable1 t => Typeable (DSum t) where
typeOf ds = mkTyConApp dSumCon [typeOfT]
where
dSumCon = mkTyCon3 "dependent-sum" "Data.Dependent.Sum" "DSum"
typeOfT = typeOf1 $ (undefined :: DSum f -> f a) ds
#else
instance Typeable1 t => Typeable (DSum t) where
typeOf ds = mkTyConApp dSumCon [typeOfT]
where
dSumCon = mkTyCon "Data.Dependent.Sum.DSum"
typeOfT = typeOf1 $ (undefined :: DSum f -> f a) ds
#endif