6.2.2 fixes

This commit is contained in:
Don Stewart 2005-07-06 05:22:54 +00:00
parent 8aa4659aaf
commit 1e80e35463
2 changed files with 11 additions and 1 deletions

View File

@ -31,11 +31,13 @@ module AltData.Dynamic (
fromDyn, -- :: Typeable a => Dynamic -> a -> a fromDyn, -- :: Typeable a => Dynamic -> a -> a
fromDynamic, -- :: Typeable a => Dynamic -> Maybe a fromDynamic, -- :: Typeable a => Dynamic -> Maybe a
#if __GLASGOW_HASKELL__ >= 603
-- * Applying functions of dynamic type -- * Applying functions of dynamic type
dynApply, dynApply,
dynApp, dynApp,
dynTypeRep dynTypeRep
#endif
) where ) where
import AltData.Typeable import AltData.Typeable
@ -45,7 +47,9 @@ import System.IO.Unsafe (unsafePerformIO)
import GHC.Base import GHC.Base
import GHC.Show import GHC.Show
#if __GLASGOW_HASKELL__ >= 603
import GHC.Err import GHC.Err
#endif
unsafeCoerce :: a -> b unsafeCoerce :: a -> b
unsafeCoerce = unsafeCoerce# unsafeCoerce = unsafeCoerce#
@ -135,6 +139,8 @@ fromDynamic (Dynamic t v) =
"\n\tInferred type: " ++show t "\n\tInferred type: " ++show t
) `seq` Nothing ) `seq` Nothing
#if __GLASGOW_HASKELL__ >= 603
-- (f::(a->b)) `dynApply` (x::a) = (f a)::b -- (f::(a->b)) `dynApply` (x::a) = (f a)::b
dynApply :: Dynamic -> Dynamic -> Maybe Dynamic dynApply :: Dynamic -> Dynamic -> Maybe Dynamic
dynApply (Dynamic t1 f) (Dynamic t2 x) = 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)) Just t3 -> Just (Dynamic t3 ((unsafeCoerce f) x))
Nothing -> Nothing Nothing -> Nothing
dynApp :: Dynamic -> Dynamic -> Dynamic dynApp :: Dynamic -> Dynamic -> Dynamic
dynApp f x = case dynApply f x of dynApp f x = case dynApply f x of
Just r -> r Just r -> r
@ -151,3 +158,5 @@ dynApp f x = case dynApply f x of
dynTypeRep :: Dynamic -> TypeRep dynTypeRep :: Dynamic -> TypeRep
dynTypeRep (Dynamic tr _) = tr dynTypeRep (Dynamic tr _) = tr
#endif

View File

@ -26,12 +26,13 @@ include ../build.mk
HC_OPTS += -package-conf $(TOP)/plugins.conf.inplace HC_OPTS += -package-conf $(TOP)/plugins.conf.inplace
HC_OPTS += -package altdata -package hi HC_OPTS += -package altdata -package hi
HC_OPTS += -package Cabal
HC_OPTS += -O -funbox-strict-fields HC_OPTS += -O -funbox-strict-fields
HC_OPTS += -Wall -fno-warn-missing-signatures HC_OPTS += -Wall -fno-warn-missing-signatures
ifeq ($(GLASGOW_HASKELL),602) ifeq ($(GLASGOW_HASKELL),602)
HC_OPTS += -package posix HC_OPTS += -package posix
else
HC_OPTS += -package Cabal
endif endif
install: install-me install: install-me