diff --git a/src/altdata/AltData/Dynamic.hs b/src/altdata/AltData/Dynamic.hs index 346dc9c..5c05405 100644 --- a/src/altdata/AltData/Dynamic.hs +++ b/src/altdata/AltData/Dynamic.hs @@ -31,11 +31,13 @@ module AltData.Dynamic ( fromDyn, -- :: Typeable a => Dynamic -> a -> a fromDynamic, -- :: Typeable a => Dynamic -> Maybe a +#if __GLASGOW_HASKELL__ >= 603 -- * Applying functions of dynamic type dynApply, dynApp, dynTypeRep +#endif ) where import AltData.Typeable @@ -45,7 +47,9 @@ import System.IO.Unsafe (unsafePerformIO) import GHC.Base import GHC.Show +#if __GLASGOW_HASKELL__ >= 603 import GHC.Err +#endif unsafeCoerce :: a -> b unsafeCoerce = unsafeCoerce# @@ -135,6 +139,8 @@ fromDynamic (Dynamic t v) = "\n\tInferred type: " ++show t ) `seq` Nothing +#if __GLASGOW_HASKELL__ >= 603 + -- (f::(a->b)) `dynApply` (x::a) = (f a)::b dynApply :: Dynamic -> Dynamic -> Maybe Dynamic dynApply (Dynamic t1 f) (Dynamic t2 x) = @@ -142,6 +148,7 @@ dynApply (Dynamic t1 f) (Dynamic t2 x) = Just t3 -> Just (Dynamic t3 ((unsafeCoerce f) x)) Nothing -> Nothing + dynApp :: Dynamic -> Dynamic -> Dynamic dynApp f x = case dynApply f x of Just r -> r @@ -151,3 +158,5 @@ dynApp f x = case dynApply f x of dynTypeRep :: Dynamic -> TypeRep dynTypeRep (Dynamic tr _) = tr + +#endif diff --git a/src/plugins/Makefile b/src/plugins/Makefile index c8e7b2c..6c1bee5 100644 --- a/src/plugins/Makefile +++ b/src/plugins/Makefile @@ -26,12 +26,13 @@ include ../build.mk HC_OPTS += -package-conf $(TOP)/plugins.conf.inplace HC_OPTS += -package altdata -package hi -HC_OPTS += -package Cabal HC_OPTS += -O -funbox-strict-fields HC_OPTS += -Wall -fno-warn-missing-signatures ifeq ($(GLASGOW_HASKELL),602) HC_OPTS += -package posix +else +HC_OPTS += -package Cabal endif install: install-me