diff --git a/ghc/compiler/prelude/TysWiredIn.lhs b/ghc/compiler/prelude/TysWiredIn.lhs index 4df3241c29d99fae1c485ea8365ee5b9a6d1f3f7..11e9232736b94797647825ab120af7dfd1dfcc16 100644 --- a/ghc/compiler/prelude/TysWiredIn.lhs +++ b/ghc/compiler/prelude/TysWiredIn.lhs @@ -22,10 +22,12 @@ module TysWiredIn ( consDataCon, doubleDataCon, doubleTy, + isDoubleTy, doubleTyCon, falseDataCon, floatDataCon, floatTy, + isFloatTy, floatTyCon, getStatePairingConInfo, @@ -252,11 +254,24 @@ floatTy = mkTyConTy floatTyCon floatTyCon = pcNonRecDataTyCon floatTyConKey pREL_BASE SLIT("Float") [] [floatDataCon] floatDataCon = pcDataCon floatDataConKey pREL_BASE SLIT("F#") [] [] [floatPrimTy] floatTyCon + +isFloatTy :: GenType flexi -> Bool +isFloatTy ty + = case (splitAlgTyConApp_maybe ty) of + Just (tycon, [], _) -> uniqueOf tycon == floatTyConKey + _ -> False + \end{code} \begin{code} doubleTy = mkTyConTy doubleTyCon +isDoubleTy :: GenType flexi -> Bool +isDoubleTy ty + = case (splitAlgTyConApp_maybe ty) of + Just (tycon, [], _) -> uniqueOf tycon == doubleTyConKey + _ -> False + doubleTyCon = pcNonRecDataTyCon doubleTyConKey pREL_BASE SLIT("Double") [] [doubleDataCon] doubleDataCon = pcDataCon doubleDataConKey pREL_BASE SLIT("D#") [] [] [doublePrimTy] doubleTyCon \end{code}