{-# OPTIONS_GHC -cpp -XMagicHash #-} {- For Hugs, use the option -F"cpp -P -traditional" -} module LinearScan.Identity where import Debug.Trace (trace, traceShow, traceShowId) import qualified Prelude import qualified Data.IntMap import qualified Data.IntSet import qualified Data.List import qualified Data.Ord import qualified Data.Functor.Identity import qualified Hask.Utils import qualified LinearScan.Applicative as Applicative import qualified LinearScan.Functor as Functor import qualified LinearScan.Monad as Monad #ifdef __GLASGOW_HASKELL__ import qualified GHC.Base as GHC.Base import qualified GHC.Prim as GHC.Prim #else -- HUGS import qualified LinearScan.IOExts as IOExts #endif #ifdef __GLASGOW_HASKELL__ --unsafeCoerce :: a -> b unsafeCoerce = GHC.Base.unsafeCoerce# #else -- HUGS --unsafeCoerce :: a -> b unsafeCoerce = IOExts.unsafeCoerce #endif #ifdef __GLASGOW_HASKELL__ type Any = GHC.Prim.Any #else -- HUGS type Any = () #endif type Identity a = a coq_Identity_Functor :: Functor.Functor (Identity Any) coq_Identity_Functor _ _ x = x coq_Identity_Applicative :: Applicative.Applicative (Identity Any) coq_Identity_Applicative = Applicative.Build_Applicative coq_Identity_Functor (\_ x -> x) (\_ _ x -> unsafeCoerce x) coq_Identity_Monad :: Monad.Monad (Identity Any) coq_Identity_Monad = Monad.Build_Monad coq_Identity_Applicative (\_ x -> x)