6.2.2 fixes
This commit is contained in:
parent
8aa4659aaf
commit
1e80e35463
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user