Implementation of StrictData language extension
[ghc.git] / compiler / deSugar / DsMeta.hs
index d4a811f..c222b33 100644 (file)
@@ -648,15 +648,17 @@ mkGadtCtxt data_tvs (ResTyGADT _ res_ty)
 
 
 repBangTy :: LBangType Name -> DsM (Core (TH.StrictTypeQ))
-repBangTy ty= do
+repBangTy ty = do
   MkC s <- rep2 str []
   MkC t <- repLTy ty'
   rep2 strictTypeName [s, t]
   where
     (str, ty') = case ty of
-         L _ (HsBangTy (HsSrcBang _ (Just True) True) ty) -> (unpackedName,  ty)
-         L _ (HsBangTy (HsSrcBang _ _     True) ty)       -> (isStrictName,  ty)
-         _                                                -> (notStrictName, ty)
+         L _ (HsBangTy (HsSrcBang _ SrcUnpack SrcStrict) ty)
+           -> (unpackedName,  ty)
+         L _ (HsBangTy (HsSrcBang _ _         SrcStrict) ty)
+           -> (isStrictName,  ty)
+         _ -> (notStrictName, ty)
 
 -------------------------------------------------------
 --                      Deriving clause
@@ -2129,5 +2131,3 @@ notHandled what doc = failWithDs msg
   where
     msg = hang (text what <+> ptext (sLit "not (yet) handled by Template Haskell"))
              2 doc
-
-