packages feed

ghc-exactprint 0.5.3.0 → 0.5.3.1

raw patch · 1298 files changed

+15396/−15337 lines, 1298 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Language.Haskell.GHC.ExactPrint.Annotate: [MarkOffsetPrimOptional] :: AnnKeywordId -> Int -> Maybe String -> next -> AnnotationF next
+ Language.Haskell.GHC.ExactPrint.Annotate: [MarkAnnBeforeAnn] :: AnnKeywordId -> AnnKeywordId -> next -> AnnotationF next

This diff is very large; some files are shown as “too large to diff”. Download the raw patch for the complete diff.

Files

ChangeLog view
@@ -1,3 +1,5 @@+2017-05-05 v0.5.3.1+	* Fix bug roundtripping optional semicolons on if statements. 2017-02-07 v0.5.3.0 	* Support GHC 8.0.2 	* Correct the logic around RigidLayout to function as originally
ghc-exactprint.cabal view
@@ -1,5 +1,5 @@ name:                ghc-exactprint-version:             0.5.3.0+version:             0.5.3.1 synopsis:            ExactPrint for GHC description:         Using the API Annotations available from GHC 7.10.2, this                      library provides a means to round trip any code that can@@ -31,7 +31,7 @@                      tests/examples/failing/*.hs                      tests/examples/ghc710/*.hs                      tests/examples/ghc710-only/*.hs-                     tests/examples/ghc8/*.hs+                     tests/examples/ghc80/*.hs                      tests/examples/transform/*.hs                      tests/examples/failing/*.hs.bad                      tests/examples/transform/*.hs.expected
src/Language/Haskell/GHC/ExactPrint/Annotate.hs view
@@ -120,13 +120,14 @@   MarkMany         :: GHC.AnnKeywordId                                     -> next -> AnnotationF next   MarkManyOptional :: GHC.AnnKeywordId                                     -> next -> AnnotationF next   MarkOffsetPrim   :: GHC.AnnKeywordId -> Int -> Maybe String              -> next -> AnnotationF next-  MarkOffsetPrimOptional :: GHC.AnnKeywordId -> Int -> Maybe String        -> next -> AnnotationF next+  -- MarkOffsetPrimOptional :: GHC.AnnKeywordId -> Int -> Maybe String        -> next -> AnnotationF next   WithAST          :: Data a => GHC.Located a                              -> Annotated b                                -> next -> AnnotationF next   CountAnns        :: GHC.AnnKeywordId                        -> (Int     -> next) -> AnnotationF next   WithSortKey      :: [(GHC.SrcSpan, Annotated ())]                        -> next -> AnnotationF next    SetLayoutFlag    ::  Rigidity -> Annotated ()                            -> next -> AnnotationF next+  MarkAnnBeforeAnn :: GHC.AnnKeywordId -> GHC.AnnKeywordId                 -> next -> AnnotationF next    -- Required to work around deficiencies in the GHC AST   StoreOriginalSrcSpan :: GHC.SrcSpan -> AnnKey         -> (AnnKey -> next) -> AnnotationF next@@ -166,7 +167,7 @@ makeFreeCon  'MarkMany makeFreeCon  'MarkManyOptional makeFreeCon  'MarkOffsetPrim-makeFreeCon  'MarkOffsetPrimOptional+-- makeFreeCon  'MarkOffsetPrimOptional makeFreeCon  'CountAnns makeFreeCon  'StoreOriginalSrcSpan makeFreeCon  'GetSrcSpanForKw@@ -184,6 +185,7 @@ makeFreeCon  'IfInContext makeFreeCon  'WithSortKeyContexts makeFreeCon  'TellContext+makeFreeCon  'MarkAnnBeforeAnn  -- --------------------------------------------------------------------- @@ -240,8 +242,8 @@ markOffset :: GHC.AnnKeywordId -> Int -> Annotated () markOffset kwid n = markOffsetPrim kwid n Nothing -markOffsetOptional :: GHC.AnnKeywordId -> Int -> Annotated ()-markOffsetOptional kwid n = markOffsetPrimOptional kwid n Nothing+-- markOffsetOptional :: GHC.AnnKeywordId -> Int -> Annotated ()+-- markOffsetOptional kwid n = markOffsetPrimOptional kwid n Nothing  markTrailingSemi :: Annotated () markTrailingSemi = markOutside GHC.AnnSemi AnnSemiSep@@ -2587,10 +2589,12 @@       -- markExpr _ (GHC.HsIf _ e1 e2 e3) = setRigidFlag $ do         mark GHC.AnnIf         markLocated e1-        markOffsetOptional GHC.AnnSemi 0+        -- markOffsetOptional GHC.AnnSemi 0+        markAnnBeforeAnn GHC.AnnSemi GHC.AnnThen         mark GHC.AnnThen         setContextLevel (Set.singleton ListStart) 2 $ markLocated e2-        markOffsetOptional GHC.AnnSemi 1+        -- markOffsetOptional GHC.AnnSemi 1+        markAnnBeforeAnn GHC.AnnSemi GHC.AnnElse         mark GHC.AnnElse         setContextLevel (Set.singleton ListStart) 2 $ markLocated e3 
src/Language/Haskell/GHC/ExactPrint/Delta.hs view
@@ -245,13 +245,14 @@     go (MarkMany akwid next)            = addDeltaAnnotations akwid >> next     go (MarkManyOptional akwid next)    = addDeltaAnnotations akwid >> next     go (MarkOffsetPrim akwid n _ next)  = addDeltaAnnotationLs akwid n >> next-    go (MarkOffsetPrimOptional akwid n _ next) = addDeltaAnnotationLs akwid n >> next+    -- go (MarkOffsetPrimOptional akwid n _ next) = addDeltaAnnotationLs akwid n >> next     go (WithAST lss prog next)          = withAST lss (deltaInterpret prog) >> next     go (CountAnns kwid next)            = countAnnsDelta kwid >>= next     go (SetLayoutFlag r action next)    = do       rigidity <- asks drRigidity       (if r <= rigidity then setLayoutFlag else id) (deltaInterpret action)       next+    go (MarkAnnBeforeAnn ann1 ann2 next) = deltaMarkAnnBeforeAnn ann1 ann2 >> next     go (MarkExternal ss akwid _ next)    = addDeltaAnnotationExt ss akwid >> next     go (StoreOriginalSrcSpan _ key next) = storeOriginalSrcSpanDelta key >>= next     go (GetSrcSpanForKw ss kw next)      = getSrcSpanForKw ss kw >>= next@@ -652,6 +653,21 @@ addDeltaComment :: Comment -> DeltaPos -> Delta () addDeltaComment d p = do   addAnnDeltaPos (AnnComment d) p++-- ---------------------------------------------------------------------++-- |If the first annotation has a smaller SrcSpan than the second, then mark it.+deltaMarkAnnBeforeAnn :: GHC.AnnKeywordId -> GHC.AnnKeywordId -> Delta ()+deltaMarkAnnBeforeAnn annBefore annAfter = do+  ss <- getSrcSpan+  mb <- peekAnnotationDelta annBefore+  ma <- peekAnnotationDelta annAfter+  let+    before = sort $ filter (\s -> GHC.isSubspanOf s ss) mb+    after  = sort $ filter (\s -> GHC.isSubspanOf s ss) ma+  case (before,after) of+    (b:_, a:_) -> when (b < a) $ addDeltaAnnotation annBefore+    _ -> return ()  -- --------------------------------------------------------------------- 
src/Language/Haskell/GHC/ExactPrint/Pretty.hs view
@@ -161,7 +161,7 @@     go (MarkMany akwid next)            = addPrettyAnnotation (G akwid) >> next     go (MarkManyOptional _akwid next)   = next     go (MarkOffsetPrim akwid n _ next)  = addPrettyAnnotationLs akwid n >> next-    go (MarkOffsetPrimOptional _akwid _n _ next)  = next+    -- go (MarkOffsetPrimOptional _akwid _n _ next)  = next     go (WithAST lss prog next)          = withAST lss (prettyInterpret prog) >> next     go (CountAnns kwid next)            = countAnnsPretty kwid >>= next     go (WithSortKey             kws next) = withSortKey             kws >> next@@ -171,6 +171,7 @@       (if r <= rigidity then setLayoutFlag else id) (prettyInterpret action)       next     go (StoreOriginalSrcSpan l key next) = storeOriginalSrcSpanPretty l key >>= next+    go (MarkAnnBeforeAnn _ann1 _ann2 next) = next     go (GetSrcSpanForKw ss kw next)      = getSrcSpanForKw ss kw >>= next #if __GLASGOW_HASKELL__ <= 710     go (StoreString s ss next)           = storeString s ss >> next
src/Language/Haskell/GHC/ExactPrint/Print.hs view
@@ -166,8 +166,8 @@       allAnns akwid >> next     go (MarkOffsetPrim kwid _ mstr next) =       printStringAtMaybeAnn (G kwid) mstr >> next-    go (MarkOffsetPrimOptional kwid _ mstr next) =-      printStringAtMaybeAnn (G kwid) mstr >> next+    -- go (MarkOffsetPrimOptional kwid _ mstr next) =+    --   printStringAtMaybeAnn (G kwid) mstr >> next     go (WithAST lss action next) =       exactPC lss (printInterpret action) >> next     go (CountAnns kwid next) =@@ -176,6 +176,8 @@       rigidity <- asks epRigidity       (if r <= rigidity then setLayout else id) (printInterpret action)       next++    go (MarkAnnBeforeAnn ann1 ann2 next) = printMarkAnnBeforeAnn (G ann1) (G ann2) >> next     go (MarkExternal _ akwid s next) =       printStringAtMaybeAnn (G akwid) (Just s) >> next     go (StoreOriginalSrcSpan _ _ next) = storeOriginalSrcSpanPrint >>= next@@ -353,6 +355,25 @@ -- |Get the current column offset getLayoutOffset :: (Monad m, Monoid w) => EP w m LayoutStartCol getLayoutOffset = gets epLHS++-- ---------------------------------------------------------------------++-- |If the first annotation has a smaller SrcSpan than the second, then mark it.+-- In the printer this means the first appearing before the second in the list+-- of annotations remaining+printMarkAnnBeforeAnn :: (Monad m, Monoid w) => KeywordId -> KeywordId -> EP w m ()+printMarkAnnBeforeAnn annBefore annAfter = do+  kd <- gets epAnnKds+  case kd of+    []    -> return () -- Should never be triggered+    (k:_kds) -> do+      -- find the first ann, then the second. If found in that order, annotate.+      let find a = (\(kw,_) -> kw == a)+      case break (find annBefore) k of+        (_,[]) -> return () -- annBefore not present+        (_,rest) -> if null (snd $ break (find annAfter) rest)+                      then return ()+                      else markPrim annBefore (Nothing)  -- --------------------------------------------------------------------- 
tests/Test.hs view
@@ -28,12 +28,12 @@  -- --------------------------------------------------------------------- -data GHCVersion = GHC710 | GHC8 deriving (Eq, Ord, Show)+data GHCVersion = GHC710 | GHC80 deriving (Eq, Ord, Show)  ghcVersion :: GHCVersion ghcVersion = #if __GLASGOW_HASKELL__ >= 711-  GHC8+  GHC80 #else   GHC710 #endif@@ -43,7 +43,7 @@ testDirs =   case ghcVersion of     GHC710 -> ["ghc710-only","ghc710"]-    GHC8   -> ["ghc710", "ghc8"]+    GHC80  -> ["ghc710", "ghc80"]  -- --------------------------------------------------------------------- @@ -148,16 +148,16 @@  tt' :: IO (Counts,Int) tt' = runTestText (putTextToHandle stdout True) $ TestList [-      -- mkParserTest "ghc710" "Unicode.hs"+      mkParserTest "ghc80" "SemicolonIf.hs" -      -- mkPrettyRoundtrip "ghc8" "StringSource.hs"-      -- mkPrettyRoundtrip "ghc8" "records-prov-req.hs"-      -- mkPrettyRoundtrip "ghc8" "records-poly-update.hs"-      -- mkPrettyRoundtrip "ghc8" "poly-export-fail2.hs"-      mkPrettyRoundtrip "ghc8" "pmc007.hs"+      -- mkPrettyRoundtrip "ghc80" "StringSource.hs"+      -- mkPrettyRoundtrip "ghc80" "records-prov-req.hs"+      -- mkPrettyRoundtrip "ghc80" "records-poly-update.hs"+      -- mkPrettyRoundtrip "ghc80" "poly-export-fail2.hs"+      -- mkPrettyRoundtrip "ghc80" "pmc007.hs" -      -- mkParserTest "ghc8" "DatatypeContexts.hs"-      -- mkParserTest "ghc8" "Families.hs"+      -- mkParserTest "ghc80" "DatatypeContexts.hs"+      -- mkParserTest "ghc80" "Families.hs"     -- Needs GHC changes       -- , mkParserTest "failing" "CtorOp.hs"
− tests/examples/ghc8/A.hs
@@ -1,4 +0,0 @@-module A where--class A a where-  has :: a
− tests/examples/ghc8/AddParams2.hs
@@ -1,9 +0,0 @@-module AddParams2 where--collapse rightInner rightOuter = right-  where-    right           = (rightInner, rightOuter)-    righ2           = (rightInner, (rightOuter baz bar))--baz = undefined-bar = undefined
− tests/examples/ghc8/Associated.hs
@@ -1,9 +0,0 @@-module Associated(A(..)) where--import AssociatedInternal (A(..))--foo = MkA 5-baz = NoA--qux (MkA x) = x-qux NoA = 0
− tests/examples/ghc8/AssociatedInternal.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module AssociatedInternal (A(NewA,MkA, NoA)) where--newtype A = NewA (Maybe Int)--pattern MkA n = NewA (Just n)--pattern NoA = NewA Nothing
− tests/examples/ghc8/B.hs
@@ -1,4 +0,0 @@-module B where--class B a where-  has :: a
− tests/examples/ghc8/BadTelescope.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE TypeInType #-}--module BadTelescope where--import Data.Kind--data SameKind :: k -> k -> *--data X a k (b :: k) (c :: SameKind a b)
− tests/examples/ghc8/BadTelescope2.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE TypeInType, ExplicitForAll #-}--module BadTelescope2 where--import Data.Kind-import Data.Proxy--data SameKind :: k -> k -> *--foo :: forall a k (b :: k). SameKind a b-foo = undefined--bar :: forall a (c :: Proxy b) (d :: Proxy a). Proxy c -> SameKind b d-bar = undefined
− tests/examples/ghc8/BadTelescope3.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE TypeInType, ExplicitForAll #-}--module BadTelescope3 where--import Data.Kind--data SameKind :: k -> k -> *--type S a k (b :: k) = SameKind a b
− tests/examples/ghc8/BadTelescope4.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE ExistentialQuantification, TypeInType #-}-module BadTelescope4 where--import Data.Proxy-import Data.Kind--data SameKind :: k -> k -> *--data Bad a (c :: Proxy b) (d :: Proxy a) (x :: SameKind b d)--data Borked a (b :: k) = forall (c :: k). B (Proxy c)-  -- this last one is OK. But there was a bug involving renaming-  -- that failed here, so the test case remains.
− tests/examples/ghc8/Base.hs
@@ -1,6 +0,0 @@-module Base (AClass(..), BClass()) where--import Extends (BClass ())--class AClass a where-  has :: a
− tests/examples/ghc8/Bundle.hs
@@ -1,9 +0,0 @@-module Bundle(A(..)) where--import BundleInternal (A(..))--foo = MkA 5-baz = NoA--qux (MkA x) = x-qux NoA = 0
− tests/examples/ghc8/Bundle1.hs
@@ -1,9 +0,0 @@-module Associated1(A(..)) where--import BundleInternal1 (A(..))--foo = MkA 5-baz = NoA--qux (MkA x) = x-qux NoA = 0
− tests/examples/ghc8/BundleExport.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module BundleExport(P(.., A), Q(B)) where--data P = P--data Q = Q--pattern A = P-pattern B = Q
− tests/examples/ghc8/BundleInternal.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module BundleInternal (A(NewA,MkA, NoA)) where--newtype A = NewA (Maybe Int)--pattern MkA n = NewA (Just n)--pattern NoA = NewA Nothing
− tests/examples/ghc8/BundleInternal1.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module BundleInternal1 (A(NewA,MkA, NoA)) where--newtype A = NewA (Maybe Int)--pattern MkA n = NewA (Just n)--pattern NoA = NewA Nothing
− tests/examples/ghc8/C.hs
@@ -1,3 +0,0 @@-module C (oops) where--import {-# SOURCE #-} B
− tests/examples/ghc8/CheckUtils.hs
@@ -1,117 +0,0 @@-{-# LANGUAGE RankNTypes #-}---- This program must be called with GHC's libdir and the file to be checked as--- the command line arguments.-module CheckUtils where--import Data.Data-import Data.List-import System.IO-import GHC-import BasicTypes-import DynFlags-import MonadUtils-import Outputable-import ApiAnnotation-import Bag (filterBag,isEmptyBag)-import System.Directory (removeFile)-import System.Environment( getArgs )-import qualified Data.Map as Map-import qualified Data.Set as Set-import Data.Dynamic ( fromDynamic,Dynamic )--_main::IO()-_main = do-        [libdir,fileName] <- getArgs-        testOneFile libdir fileName--testOneFile libdir fileName = do-       ((anns,cs),p) <- runGhc (Just libdir) $ do-                        dflags <- getSessionDynFlags-                        setSessionDynFlags dflags-                        let mn =mkModuleName fileName-                        addTarget Target { targetId = TargetModule mn-                                         , targetAllowObjCode = True-                                         , targetContents = Nothing }-                        load LoadAllTargets-                        modSum <- getModSummary mn-                        p <- parseModule modSum-                        return (pm_annotations p,p)--       let spans = Set.fromList $ getAllSrcSpans (pm_parsed_source p)--           problems = filter (\(s,a) -> not (Set.member s spans))-                             $ getAnnSrcSpans (anns,cs)--           exploded = [((kw,ss),[anchor])-                      | ((anchor,kw),sss) <- Map.toList anns,ss <- sss]--           exploded' = Map.toList $ Map.fromListWith (++) exploded--           problems' = filter (\(_,anchors)-                                -> not (any (\a -> Set.member a spans) anchors))-                              exploded'--       putStrLn "---Problems---------------------"-       putStrLn (intercalate "\n" [showAnns $ Map.fromList $ map snd problems])-       putStrLn "---Problems'--------------------"-       putStrLn (intercalate "\n" [pp $ Map.fromList $ map fst problems'])-       putStrLn "--------------------------------"-       putStrLn (intercalate "\n" [showAnns anns])--    where-      getAnnSrcSpans :: ApiAnns -> [(SrcSpan,(ApiAnnKey,[SrcSpan]))]-      getAnnSrcSpans (anns,_) = map (\a@((ss,_),_) -> (ss,a)) $ Map.toList anns--      getAllSrcSpans :: (Data t) => t -> [SrcSpan]-      getAllSrcSpans ast = everything (++) ([] `mkQ` getSrcSpan) ast-        where-          getSrcSpan :: SrcSpan -> [SrcSpan]-          getSrcSpan ss = [ss]---showAnns anns = "[\n" ++ (intercalate "\n"-   $ map (\((s,k),v)-              -> ("(AK " ++ pp s ++ " " ++ show k ++" = " ++ pp v ++ ")\n"))-   $ Map.toList anns)-    ++ "]\n"--pp a = showPpr unsafeGlobalDynFlags a----- ------------------------------------------------------------------------- Copied from syb for the test----- | Generic queries of type \"r\",---   i.e., take any \"a\" and return an \"r\"----type GenericQ r = forall a. Data a => a -> r----- | Make a generic query;---   start from a type-specific case;---   return a constant otherwise----mkQ :: ( Typeable a-       , Typeable b-       )-    => r-    -> (b -> r)-    -> a-    -> r-(r `mkQ` br) a = case cast a of-                        Just b  -> br b-                        Nothing -> r------ | Summarise all nodes in top-down, left-to-right order-everything :: (r -> r -> r) -> GenericQ r -> GenericQ r---- Apply f to x to summarise top-level node;--- use gmapQ to recurse into immediate subterms;--- use ordinary foldl to reduce list of intermediate results--everything k f x = foldl k (f x) (gmapQ (everything k f) x)
− tests/examples/ghc8/Class.hs
@@ -1,20 +0,0 @@-{-# LANGUAGE UndecidableInstances #-}-module Servant.Auth.Server.Internal.Class where--import Servant.Auth-import Data.Monoid-import Servant hiding (BasicAuth)--import Servant.Auth.Server.Internal.Types-import Servant.Auth.Server.Internal.ConfigTypes-import Servant.Auth.Server.Internal.BasicAuth-import Servant.Auth.Server.Internal.Cookie-import Servant.Auth.Server.Internal.JWT---- | @IsAuth a ctx v@ indicates that @a@ is an auth type that expects all--- elements of @ctx@ to be the in the Context and whose authentication check--- returns an @AuthCheck v@.-class IsAuth a v  where-  type family AuthArgs a :: [*]-  runAuth :: proxy a -> proxy v -> Unapp (AuthArgs a) (AuthCheck v)-
− tests/examples/ghc8/ClosedFam1a.hs
@@ -1,3 +0,0 @@-module ClosedFam1a where--import {-# SOURCE #-} ClosedFam1
− tests/examples/ghc8/ClosedFam2a.hs
@@ -1,2 +0,0 @@-module ClosedFam2a where-import {-# SOURCE #-} ClosedFam2
− tests/examples/ghc8/ClosedFam3a.hs
@@ -1,3 +0,0 @@-module ClosedFam3a where--import {-# SOURCE #-} ClosedFam3
− tests/examples/ghc8/CmmSwitchTest.hs
@@ -1,505 +0,0 @@-{-# LANGUAGE MagicHash #-}-import Control.Monad (unless, forM_)-import GHC.Exts-{-# NOINLINE aa #-}-aa :: Int# -> Int#-aa 1# = 42#-aa 2# = 43#-aa 3# = 43#-aa 4# = 44#-aa 5# = 44#-aa 6# = 45#-aa 7# = 45#-aa 8# = 46#-aa 9# = 46#-aa 10# = 47#-aa _ = 1337#--{-# NOINLINE ab #-}-ab :: Int# -> Int#-ab 0# = 42#-ab 1# = 42#-ab 2# = 43#-ab 3# = 43#-ab 4# = 44#-ab 5# = 44#-ab 6# = 45#-ab 7# = 45#-ab 8# = 46#-ab 9# = 46#-ab 10# = 47#-ab _ = 1337#--{-# NOINLINE ac #-}-ac :: Int# -> Int#-ac 1# = 42#-ac 2# = 43#-ac 3# = 43#-ac _ = 1337#--{-# NOINLINE ad #-}-ad :: Int# -> Int#-ad 1# = 42#-ad 2# = 43#-ad 3# = 43#-ad 4# = 44#-ad _ = 1337#--{-# NOINLINE ae #-}-ae :: Int# -> Int#-ae 1# = 42#-ae 2# = 43#-ae 3# = 43#-ae 4# = 44#-ae 5# = 44#-ae _ = 1337#--{-# NOINLINE af #-}-af :: Int# -> Int#-af -1# = 41#-af 0# = 42#-af 1# = 42#-af 2# = 43#-af 3# = 43#-af 4# = 44#-af 5# = 44#-af 6# = 45#-af 7# = 45#-af 8# = 46#-af 9# = 46#-af 10# = 47#-af _ = 1337#--{-# NOINLINE ag #-}-ag :: Int# -> Int#-ag -10# = 37#-ag -9# = 37#-ag -8# = 38#-ag -7# = 38#-ag -6# = 39#-ag -5# = 39#-ag -4# = 40#-ag -3# = 40#-ag -2# = 41#-ag -1# = 41#-ag 0# = 42#-ag 1# = 42#-ag 2# = 43#-ag 3# = 43#-ag 4# = 44#-ag 5# = 44#-ag 6# = 45#-ag 7# = 45#-ag 8# = 46#-ag 9# = 46#-ag 10# = 47#-ag _ = 1337#--{-# NOINLINE ah #-}-ah :: Int# -> Int#-ah -20# = 32#-ah -19# = 32#-ah -18# = 33#-ah -17# = 33#-ah -16# = 34#-ah -15# = 34#-ah -14# = 35#-ah -13# = 35#-ah -12# = 36#-ah -11# = 36#-ah -10# = 37#-ah 0# = 42#-ah 1# = 42#-ah 2# = 43#-ah 3# = 43#-ah 4# = 44#-ah 5# = 44#-ah 6# = 45#-ah 7# = 45#-ah 8# = 46#-ah 9# = 46#-ah 10# = 47#-ah _ = 1337#--{-# NOINLINE ai #-}-ai :: Int# -> Int#-ai -20# = 32#-ai -19# = 32#-ai -18# = 33#-ai -17# = 33#-ai -16# = 34#-ai -15# = 34#-ai -14# = 35#-ai -13# = 35#-ai -12# = 36#-ai -11# = 36#-ai -10# = 37#-ai 1# = 42#-ai 2# = 43#-ai 3# = 43#-ai 4# = 44#-ai 5# = 44#-ai 6# = 45#-ai 7# = 45#-ai 8# = 46#-ai 9# = 46#-ai 10# = 47#-ai _ = 1337#--{-# NOINLINE aj #-}-aj :: Int# -> Int#-aj -9223372036854775808# = -4611686018427387862#-aj 0# = 42#-aj 9223372036854775807# = 4611686018427387945#-aj _ = 1337#--{-# NOINLINE ak #-}-ak :: Int# -> Int#-ak 9223372036854775797# = 4611686018427387940#-ak 9223372036854775798# = 4611686018427387941#-ak 9223372036854775799# = 4611686018427387941#-ak 9223372036854775800# = 4611686018427387942#-ak 9223372036854775801# = 4611686018427387942#-ak 9223372036854775802# = 4611686018427387943#-ak 9223372036854775803# = 4611686018427387943#-ak 9223372036854775804# = 4611686018427387944#-ak 9223372036854775805# = 4611686018427387944#-ak 9223372036854775806# = 4611686018427387945#-ak 9223372036854775807# = 4611686018427387945#-ak _ = 1337#--{-# NOINLINE al #-}-al :: Int# -> Int#-al -9223372036854775808# = -4611686018427387862#-al -9223372036854775807# = -4611686018427387862#-al -9223372036854775806# = -4611686018427387861#-al -9223372036854775805# = -4611686018427387861#-al -9223372036854775804# = -4611686018427387860#-al -9223372036854775803# = -4611686018427387860#-al -9223372036854775802# = -4611686018427387859#-al -9223372036854775801# = -4611686018427387859#-al -9223372036854775800# = -4611686018427387858#-al -9223372036854775799# = -4611686018427387858#-al -9223372036854775798# = -4611686018427387857#-al 9223372036854775797# = 4611686018427387940#-al 9223372036854775798# = 4611686018427387941#-al 9223372036854775799# = 4611686018427387941#-al 9223372036854775800# = 4611686018427387942#-al 9223372036854775801# = 4611686018427387942#-al 9223372036854775802# = 4611686018427387943#-al 9223372036854775803# = 4611686018427387943#-al 9223372036854775804# = 4611686018427387944#-al 9223372036854775805# = 4611686018427387944#-al 9223372036854775806# = 4611686018427387945#-al 9223372036854775807# = 4611686018427387945#-al _ = 1337#--{-# NOINLINE am #-}-am :: Word# -> Word#-am 0## = 42##-am 1## = 42##-am 2## = 43##-am 3## = 43##-am 4## = 44##-am 5## = 44##-am 6## = 45##-am 7## = 45##-am 8## = 46##-am 9## = 46##-am 10## = 47##-am _ = 1337##--{-# NOINLINE an #-}-an :: Word# -> Word#-an 1## = 42##-an 2## = 43##-an 3## = 43##-an 4## = 44##-an 5## = 44##-an 6## = 45##-an 7## = 45##-an 8## = 46##-an 9## = 46##-an 10## = 47##-an _ = 1337##--{-# NOINLINE ao #-}-ao :: Word# -> Word#-ao 0## = 42##-ao _ = 1337##--{-# NOINLINE ap #-}-ap :: Word# -> Word#-ap 0## = 42##-ap 1## = 42##-ap _ = 1337##--{-# NOINLINE aq #-}-aq :: Word# -> Word#-aq 0## = 42##-aq 1## = 42##-aq 2## = 43##-aq _ = 1337##--{-# NOINLINE ar #-}-ar :: Word# -> Word#-ar 0## = 42##-ar 1## = 42##-ar 2## = 43##-ar 3## = 43##-ar _ = 1337##--{-# NOINLINE as #-}-as :: Word# -> Word#-as 0## = 42##-as 1## = 42##-as 2## = 43##-as 3## = 43##-as 4## = 44##-as _ = 1337##--{-# NOINLINE at #-}-at :: Word# -> Word#-at 1## = 42##-at _ = 1337##--{-# NOINLINE au #-}-au :: Word# -> Word#-au 1## = 42##-au 2## = 43##-au _ = 1337##--{-# NOINLINE av #-}-av :: Word# -> Word#-av 1## = 42##-av 2## = 43##-av 3## = 43##-av _ = 1337##--{-# NOINLINE aw #-}-aw :: Word# -> Word#-aw 1## = 42##-aw 2## = 43##-aw 3## = 43##-aw 4## = 44##-aw _ = 1337##--{-# NOINLINE ax #-}-ax :: Word# -> Word#-ax 1## = 42##-ax 2## = 43##-ax 3## = 43##-ax 4## = 44##-ax 5## = 44##-ax _ = 1337##--{-# NOINLINE ay #-}-ay :: Word# -> Word#-ay 0## = 42##-ay 18446744073709551615## = 9223372036854775849##-ay _ = 1337##--{-# NOINLINE az #-}-az :: Word# -> Word#-az 18446744073709551605## = 9223372036854775844##-az 18446744073709551606## = 9223372036854775845##-az 18446744073709551607## = 9223372036854775845##-az 18446744073709551608## = 9223372036854775846##-az 18446744073709551609## = 9223372036854775846##-az 18446744073709551610## = 9223372036854775847##-az 18446744073709551611## = 9223372036854775847##-az 18446744073709551612## = 9223372036854775848##-az 18446744073709551613## = 9223372036854775848##-az 18446744073709551614## = 9223372036854775849##-az 18446744073709551615## = 9223372036854775849##-az _ = 1337##--{-# NOINLINE ba #-}-ba :: Word# -> Word#-ba 0## = 42##-ba 1## = 42##-ba 2## = 43##-ba 3## = 43##-ba 4## = 44##-ba 5## = 44##-ba 6## = 45##-ba 7## = 45##-ba 8## = 46##-ba 9## = 46##-ba 10## = 47##-ba 18446744073709551605## = 9223372036854775844##-ba 18446744073709551606## = 9223372036854775845##-ba 18446744073709551607## = 9223372036854775845##-ba 18446744073709551608## = 9223372036854775846##-ba 18446744073709551609## = 9223372036854775846##-ba 18446744073709551610## = 9223372036854775847##-ba 18446744073709551611## = 9223372036854775847##-ba 18446744073709551612## = 9223372036854775848##-ba 18446744073709551613## = 9223372036854775848##-ba 18446744073709551614## = 9223372036854775849##-ba 18446744073709551615## = 9223372036854775849##-ba _ = 1337##--aa_check :: IO ()-aa_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(I# i,o) -> do-   let r = I# (aa i)-   unless (r == o) $ putStrLn $ "ERR: aa (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ab_check :: IO ()-ab_check = forM_ [(-1,1337), (0,42), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(I# i,o) -> do-   let r = I# (ab i)-   unless (r == o) $ putStrLn $ "ERR: ab (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ac_check :: IO ()-ac_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,1337)] $ \(I# i,o) -> do-   let r = I# (ac i)-   unless (r == o) $ putStrLn $ "ERR: ac (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ad_check :: IO ()-ad_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,44), (5,1337)] $ \(I# i,o) -> do-   let r = I# (ad i)-   unless (r == o) $ putStrLn $ "ERR: ad (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ae_check :: IO ()-ae_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,44), (5,44), (6,1337)] $ \(I# i,o) -> do-   let r = I# (ae i)-   unless (r == o) $ putStrLn $ "ERR: ae (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--af_check :: IO ()-af_check = forM_ [(-2,1337), (-1,41), (0,42), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(I# i,o) -> do-   let r = I# (af i)-   unless (r == o) $ putStrLn $ "ERR: af (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ag_check :: IO ()-ag_check = forM_ [(-11,1337), (-10,37), (-9,37), (-8,38), (-7,38), (-6,39), (-5,39), (-4,40), (-3,40), (-2,41), (-1,41), (0,42), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(I# i,o) -> do-   let r = I# (ag i)-   unless (r == o) $ putStrLn $ "ERR: ag (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ah_check :: IO ()-ah_check = forM_ [(-21,1337), (-20,32), (-19,32), (-18,33), (-17,33), (-16,34), (-15,34), (-14,35), (-13,35), (-12,36), (-11,36), (-10,37), (-9,1337), (-1,1337), (0,42), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(I# i,o) -> do-   let r = I# (ah i)-   unless (r == o) $ putStrLn $ "ERR: ah (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ai_check :: IO ()-ai_check = forM_ [(-21,1337), (-20,32), (-19,32), (-18,33), (-17,33), (-16,34), (-15,34), (-14,35), (-13,35), (-12,36), (-11,36), (-10,37), (-9,1337), (0,1337), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(I# i,o) -> do-   let r = I# (ai i)-   unless (r == o) $ putStrLn $ "ERR: ai (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--aj_check :: IO ()-aj_check = forM_ [(-9223372036854775808,-4611686018427387862), (-9223372036854775807,1337), (-1,1337), (0,42), (1,1337), (9223372036854775806,1337), (9223372036854775807,4611686018427387945)] $ \(I# i,o) -> do-   let r = I# (aj i)-   unless (r == o) $ putStrLn $ "ERR: aj (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ak_check :: IO ()-ak_check = forM_ [(9223372036854775796,1337), (9223372036854775797,4611686018427387940), (9223372036854775798,4611686018427387941), (9223372036854775799,4611686018427387941), (9223372036854775800,4611686018427387942), (9223372036854775801,4611686018427387942), (9223372036854775802,4611686018427387943), (9223372036854775803,4611686018427387943), (9223372036854775804,4611686018427387944), (9223372036854775805,4611686018427387944), (9223372036854775806,4611686018427387945), (9223372036854775807,4611686018427387945)] $ \(I# i,o) -> do-   let r = I# (ak i)-   unless (r == o) $ putStrLn $ "ERR: ak (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--al_check :: IO ()-al_check = forM_ [(-9223372036854775808,-4611686018427387862), (-9223372036854775807,-4611686018427387862), (-9223372036854775806,-4611686018427387861), (-9223372036854775805,-4611686018427387861), (-9223372036854775804,-4611686018427387860), (-9223372036854775803,-4611686018427387860), (-9223372036854775802,-4611686018427387859), (-9223372036854775801,-4611686018427387859), (-9223372036854775800,-4611686018427387858), (-9223372036854775799,-4611686018427387858), (-9223372036854775798,-4611686018427387857), (-9223372036854775797,1337), (9223372036854775796,1337), (9223372036854775797,4611686018427387940), (9223372036854775798,4611686018427387941), (9223372036854775799,4611686018427387941), (9223372036854775800,4611686018427387942), (9223372036854775801,4611686018427387942), (9223372036854775802,4611686018427387943), (9223372036854775803,4611686018427387943), (9223372036854775804,4611686018427387944), (9223372036854775805,4611686018427387944), (9223372036854775806,4611686018427387945), (9223372036854775807,4611686018427387945)] $ \(I# i,o) -> do-   let r = I# (al i)-   unless (r == o) $ putStrLn $ "ERR: al (" ++ show (I# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--am_check :: IO ()-am_check = forM_ [(0,42), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(W# i,o) -> do-   let r = W# (am i)-   unless (r == o) $ putStrLn $ "ERR: am (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--an_check :: IO ()-an_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337)] $ \(W# i,o) -> do-   let r = W# (an i)-   unless (r == o) $ putStrLn $ "ERR: an (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ao_check :: IO ()-ao_check = forM_ [(0,42), (1,1337)] $ \(W# i,o) -> do-   let r = W# (ao i)-   unless (r == o) $ putStrLn $ "ERR: ao (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ap_check :: IO ()-ap_check = forM_ [(0,42), (1,42), (2,1337)] $ \(W# i,o) -> do-   let r = W# (ap i)-   unless (r == o) $ putStrLn $ "ERR: ap (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--aq_check :: IO ()-aq_check = forM_ [(0,42), (1,42), (2,43), (3,1337)] $ \(W# i,o) -> do-   let r = W# (aq i)-   unless (r == o) $ putStrLn $ "ERR: aq (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ar_check :: IO ()-ar_check = forM_ [(0,42), (1,42), (2,43), (3,43), (4,1337)] $ \(W# i,o) -> do-   let r = W# (ar i)-   unless (r == o) $ putStrLn $ "ERR: ar (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--as_check :: IO ()-as_check = forM_ [(0,42), (1,42), (2,43), (3,43), (4,44), (5,1337)] $ \(W# i,o) -> do-   let r = W# (as i)-   unless (r == o) $ putStrLn $ "ERR: as (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--at_check :: IO ()-at_check = forM_ [(0,1337), (1,42), (2,1337)] $ \(W# i,o) -> do-   let r = W# (at i)-   unless (r == o) $ putStrLn $ "ERR: at (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--au_check :: IO ()-au_check = forM_ [(0,1337), (1,42), (2,43), (3,1337)] $ \(W# i,o) -> do-   let r = W# (au i)-   unless (r == o) $ putStrLn $ "ERR: au (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--av_check :: IO ()-av_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,1337)] $ \(W# i,o) -> do-   let r = W# (av i)-   unless (r == o) $ putStrLn $ "ERR: av (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--aw_check :: IO ()-aw_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,44), (5,1337)] $ \(W# i,o) -> do-   let r = W# (aw i)-   unless (r == o) $ putStrLn $ "ERR: aw (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ax_check :: IO ()-ax_check = forM_ [(0,1337), (1,42), (2,43), (3,43), (4,44), (5,44), (6,1337)] $ \(W# i,o) -> do-   let r = W# (ax i)-   unless (r == o) $ putStrLn $ "ERR: ax (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ay_check :: IO ()-ay_check = forM_ [(0,42), (1,1337), (18446744073709551614,1337), (18446744073709551615,9223372036854775849)] $ \(W# i,o) -> do-   let r = W# (ay i)-   unless (r == o) $ putStrLn $ "ERR: ay (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--az_check :: IO ()-az_check = forM_ [(18446744073709551604,1337), (18446744073709551605,9223372036854775844), (18446744073709551606,9223372036854775845), (18446744073709551607,9223372036854775845), (18446744073709551608,9223372036854775846), (18446744073709551609,9223372036854775846), (18446744073709551610,9223372036854775847), (18446744073709551611,9223372036854775847), (18446744073709551612,9223372036854775848), (18446744073709551613,9223372036854775848), (18446744073709551614,9223372036854775849), (18446744073709551615,9223372036854775849)] $ \(W# i,o) -> do-   let r = W# (az i)-   unless (r == o) $ putStrLn $ "ERR: az (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--ba_check :: IO ()-ba_check = forM_ [(0,42), (1,42), (2,43), (3,43), (4,44), (5,44), (6,45), (7,45), (8,46), (9,46), (10,47), (11,1337), (18446744073709551604,1337), (18446744073709551605,9223372036854775844), (18446744073709551606,9223372036854775845), (18446744073709551607,9223372036854775845), (18446744073709551608,9223372036854775846), (18446744073709551609,9223372036854775846), (18446744073709551610,9223372036854775847), (18446744073709551611,9223372036854775847), (18446744073709551612,9223372036854775848), (18446744073709551613,9223372036854775848), (18446744073709551614,9223372036854775849), (18446744073709551615,9223372036854775849)] $ \(W# i,o) -> do-   let r = W# (ba i)-   unless (r == o) $ putStrLn $ "ERR: ba (" ++ show (W# i)++ ") is " ++ show r ++ " and not " ++ show o ++"."--main = do-    aa_check-    ab_check-    ac_check-    ad_check-    ae_check-    af_check-    ag_check-    ah_check-    ai_check-    aj_check-    ak_check-    al_check-    am_check-    an_check-    ao_check-    ap_check-    aq_check-    ar_check-    as_check-    at_check-    au_check-    av_check-    aw_check-    ax_check-    ay_check-    az_check-    ba_check
− tests/examples/ghc8/CmmSwitchTestGen.hs
@@ -1,115 +0,0 @@-{-# LANGUAGE TupleSections #-}---- Generates CmmSwitch.hs--import qualified Data.Set as S-import Data.Word-import Data.List--output :: Integer -> Integer-output n = n`div`2 + 42--def :: Integer-def = 1337--type Spec = (String, Bool, [Integer])--primtyp True = "Int#"-primtyp False = "Word#"--con True = "I#"-con False = "W#"--hash True = "#"-hash False = "##"--primLit s v = show v ++ hash s--genSwitch :: Spec -> String-genSwitch (name, signed, values) = unlines $-  [ "{-# NOINLINE " ++ name ++ " #-}" ] ++-  [ name ++ " :: " ++ primtyp signed ++ " -> " ++ primtyp signed ] ++-  [ name ++ " " ++ primLit signed v ++ " = " ++ primLit signed (output v)-  | v <- values] ++-  [ name ++ " _ = " ++ primLit signed def ]--genCheck :: Spec -> String-genCheck (name, signed, values) = unlines $-  [ checkName name ++ " :: IO ()"-  , checkName name ++ " = forM_ [" ++ pairs ++ "] $ \\(" ++ con signed ++ " i,o) -> do"-  , "   let r = " ++ con signed ++ " (" ++ name ++ " i)"-  , "   unless (r == o) $ putStrLn $ \"ERR: " ++ name ++ " (\" ++ show (" ++ con signed ++ " i)++ \") is \" ++ show r ++ \" and not \" ++ show o ++\".\""-  ]-  where-    f x | x `S.member` range = output x-        | otherwise          = def-    range = S.fromList values-    checkValues = S.toList $ S.fromList $-        [ v' | v <- values, v' <- [v-1,v,v+1],-               if signed then v' >= minS && v' <= maxS else v' >= minU && v' <= maxU ]-    pairs = intercalate ", " ["(" ++ show v ++ "," ++ show (f v) ++ ")" | v <- checkValues ]--checkName :: String -> String-checkName f = f ++ "_check"--genMain :: [Spec] -> String-genMain specs = unlines $ "main = do" : [ "    " ++ checkName n | (n,_,_) <- specs ]--genMod :: [Spec] -> String-genMod specs = unlines $-    "-- This file is generated from CmmSwitchGen!" :-    "{-# LANGUAGE MagicHash, NegativeLiterals #-}" :-    "import Control.Monad (unless, forM_)" :-    "import GHC.Exts" :-    map genSwitch specs ++-    map genCheck specs ++-    [ genMain specs ]--main = putStrLn $-    genMod $ zipWith (\n (s,v) -> (n,s,v)) names $ signedChecks ++ unsignedChecks---signedChecks :: [(Bool, [Integer])]-signedChecks = map (True,)-    [ [1..10]-    , [0..10]-    , [1..3]-    , [1..4]-    , [1..5]-    , [-1..10]-    , [-10..10]-    , [-20.. -10]++[0..10]-    , [-20.. -10]++[1..10]-    , [minS,0,maxS]-    , [maxS-10 .. maxS]-    , [minS..minS+10]++[maxS-10 .. maxS]-    ]--minU, maxU, minS, maxS :: Integer-minU = 0-maxU = fromIntegral (maxBound :: Word)-minS = fromIntegral (minBound :: Int)-maxS = fromIntegral (maxBound :: Int)---unsignedChecks :: [(Bool, [Integer])]-unsignedChecks = map (False,)-    [ [0..10]-    , [1..10]-    , [0]-    , [0..1]-    , [0..2]-    , [0..3]-    , [0..4]-    , [1]-    , [1..2]-    , [1..3]-    , [1..4]-    , [1..5]-    , [minU,maxU]-    , [maxU-10 .. maxU]-    , [minU..minU+10]++[maxU-10 .. maxU]-    ]--names :: [String]-names = [ c1:c2:[] | c1 <- ['a'..'z'], c2 <- ['a'..'z']]
− tests/examples/ghc8/Collapse1.hs
@@ -1,16 +0,0 @@-module LiftToTop3evel.Collapse1 where--collapse' _ _ [] = []-collapse' left space (t:ts) = new : collapse' right space rest-  where-    (_, leftInner)  = left-    rightInner      = leftInner   + symbolSize t-    right           = (rightInner, (rightOuter rightInner rights))-    (rights, rest)  = span space ts-    new             = (t, Bounds left right)--rightOuter rightInner rights      = rightInner  + symbolSize rights--data Bounds = Bounds (Int,Int) (Int,Int)-symbolSize t = 4-
− tests/examples/ghc8/Compare.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE Trustworthy,-    TypeOperators,-    PolyKinds, DataKinds,-    TypeFamilies,-    UndecidableInstances #-}---module Type.Compare where--import Data.Ord-import GHC.TypeLits--type family (a :: Ordering) $$ (b :: Ordering) :: Ordering where-  LT $$ b = LT-  GT $$ b = GT-  EQ $$ b = b-infixl 0 $$---- | Compare two types of any (possibly different) kinds.--- Since `Compare` itself is a closed type family, add instances to `CompareUser` if you want to compare other types.-type family Compare (a :: k) (b :: k') :: Ordering where--  Compare '() '() = EQ
− tests/examples/ghc8/CustomTypeErrors01.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE DataKinds, UndecidableInstances #-}-module T1 where-import GHC.TypeLits---data MyType = MyType--instance-  TypeError (Text "Values of type 'MyType' cannot be compared for equality.")-    => Eq MyType where (==) = undefined--err x = x == MyType--
− tests/examples/ghc8/CustomTypeErrors02.hs
@@ -1,19 +0,0 @@-{-# LANGUAGE DataKinds, UndecidableInstances #-}-{-# LANGUAGE TypeFamilies, TypeOperators, FlexibleContexts #-}-module T2 where--import GHC.TypeLits--type family IntRep a where-  IntRep Int      = Integer-  IntRep Integer  = Integer-  IntRep Bool     = Integer-  IntRep a        = TypeError (Text "The type '" :<>: ShowType a :<>:-                               Text "' cannot be represented as an integer.")--convert :: Num (IntRep a) => a -> IntRep a-convert _ = 5--err = convert id--
− tests/examples/ghc8/CustomTypeErrors03.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE DataKinds #-}-module T3 where--import GHC.TypeLits--f :: TypeError (Text "This is a type error")-f = undefined
− tests/examples/ghc8/D.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE TypeFamilies #-}--module D where--import A-import C--type instance F a b = a--unsafeCoerce :: a -> b-unsafeCoerce x = oops x x
− tests/examples/ghc8/DataFamilyInstanceLHS.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE TypeFamilies, GADTs, DataKinds, PolyKinds #-}-module DataFamilyInstanceLHS where--- Test case from #10586-data MyKind = A | B--data family Sing (a :: k)--data instance Sing (_ :: MyKind) where-    SingA :: Sing A-    SingB :: Sing B--foo :: Sing A-foo = SingA
− tests/examples/ghc8/DatatypeContexts.hs
@@ -1,25 +0,0 @@-{-# LANGUAGE CPP              #-}-{-# LANGUAGE DatatypeContexts #-}-{-# LANGUAGE TemplateHaskell  #-}-{-# LANGUAGE TypeFamilies     #-}--- I don't know how to silence the -XDatatypeContexts warnings otherwise...-{-# OPTIONS_GHC -w #-}--{-|-Module:      Derived.DatatypeContexts-Copyright:   (C) 2014-2016 Ryan Scott-License:     BSD-style (see the file LICENSE)-Maintainer:  Ryan Scott-Stability:   Provisional-Portability: GHC--Defines data types with DatatypeContexts (which are gross, but still possible).--}-module Derived.DatatypeContexts where---data family TyFamily x y z :: *--data instance Ord a => TyFamily a b c = TyFamily a b c-  deriving Show-
− tests/examples/ghc8/Decision.hs
@@ -1,726 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE ImpredicativeTypes #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE RecordWildCards #-}--module Airship.Internal.Decision-    ( flow-    , appendRequestPath-    ) where--import           Airship.Internal.Date (parseRfc1123Date, utcTimeToRfc1123)-import           Airship.Headers (addResponseHeader)-import           Airship.Types ( Response(..)-                               , ResponseBody(..)-                               , Webmachine-                               , etagToByteString-                               , getResponseBody-                               , getResponseHeaders-                               , halt-                               , pathInfo-                               , putResponseBody-                               , request-                               , requestHeaders-                               , requestMethod-                               , requestTime )--import           Airship.Resource(Resource(..), PostResponse(..))-import           Airship.Internal.Parsers (parseEtagList)-#if __GLASGOW_HASKELL__ < 710-import           Control.Applicative ((<$>))-#endif-import           Control.Monad (when)-import           Control.Monad.Trans (lift)-import           Control.Monad.Trans.State.Strict (StateT(..), evalStateT,-                                                   get, modify)-import           Control.Monad.Writer.Class (tell)--import           Blaze.ByteString.Builder (toByteString)-import           Data.Maybe (isJust)-import           Data.Text (Text)-import           Data.Time.Clock (UTCTime)-import           Data.ByteString                  (ByteString, intercalate)--import           Network.HTTP.Media-import qualified Network.HTTP.Types as HTTP----------------------------------------------------------------------------------- HTTP Headers--- These are headers not defined for us already in--- Network.HTTP.Types---------------------------------------------------------------------------------- TODO this exist in http-types-0.9, see CHANGES.txt-hAcceptCharset :: HTTP.HeaderName-hAcceptCharset = "Accept-Charset"--hAcceptEncoding :: HTTP.HeaderName-hAcceptEncoding = "Accept-Encoding"--hIfMatch :: HTTP.HeaderName-hIfMatch = "If-Match"--hIfUnmodifiedSince :: HTTP.HeaderName-hIfUnmodifiedSince = "If-Unmodified-Since"--hIfNoneMatch :: HTTP.HeaderName-hIfNoneMatch = "If-None-Match"----------------------------------------------------------------------------------- FlowState: StateT used for recording information as we walk the decision--- tree---------------------------------------------------------------------------------data FlowState m = FlowState-    { _contentType :: Maybe (MediaType, Webmachine m ResponseBody) }--type FlowStateT m a = StateT (FlowState m) (Webmachine m) a--type Flow m = Resource m -> FlowStateT m Response--initFlowState :: FlowState m-initFlowState = FlowState Nothing--flow :: Monad m => Resource m -> Webmachine m Response-flow r = evalStateT (b13 r) initFlowState--trace :: Monad m => Text -> FlowStateT m ()-trace t = lift $ tell [t]---------------------------------------------------------------------------------- Header value data newtypes---------------------------------------------------------------------------------newtype IfMatch = IfMatch ByteString-newtype IfNoneMatch = IfNoneMatch ByteString----------------------------------------------------------------------------------- Decision Helpers---------------------------------------------------------------------------------negotiateContentTypesAccepted :: Monad m => Resource m -> FlowStateT m ()-negotiateContentTypesAccepted Resource{..} = do-    req <- lift request-    accepted <- lift contentTypesAccepted-    let reqHeaders = requestHeaders req-        result = do-            cType <- lookup HTTP.hContentType reqHeaders-            mapContentMedia accepted cType-    case result of-        (Just process) -> lift process-        Nothing -> lift $ halt HTTP.status415--appendRequestPath :: Monad m => [Text] -> Webmachine m ByteString-appendRequestPath ts = do-    currentPath <- pathInfo <$> request-    return $ toByteString (HTTP.encodePathSegments (currentPath ++ ts))--requestHeaderDate :: Monad m => HTTP.HeaderName ->-                                Webmachine m (Maybe UTCTime)-requestHeaderDate headerName = do-    req <- request-    let reqHeaders = requestHeaders req-        dateHeader = lookup headerName reqHeaders-        parsedDate = dateHeader >>= parseRfc1123Date-    return parsedDate--writeCacheTags :: Monad m => Resource m -> FlowStateT m ()-writeCacheTags Resource{..} = lift $ do-    etag <- generateETag-    case etag of-       Nothing -> return ()-       Just t  -> addResponseHeader ("ETag", etagToByteString t)-    modified <- lastModified-    case modified of-       Nothing -> return ()-       Just d  -> addResponseHeader ("Last-Modified", utcTimeToRfc1123 d)----------------------------------------------------------------------------------- Type definitions for all decision nodes---------------------------------------------------------------------------------b13, b12, b11, b10, b09, b08, b07, b06, b05, b04, b03 :: Monad m => Flow  m-c04, c03 :: Monad m => Flow  m-d05, d04 :: Monad m => Flow  m-e06, e05 :: Monad m => Flow  m-f07, f06 :: Monad m => Flow  m-g11, g09 :: Monad m => IfMatch -> Flow m-g08, g07 :: Monad m => Flow  m-h12, h11, h10, h07 :: Monad m => Flow  m-i13 :: Monad m => IfNoneMatch -> Flow m-i12, i07, i04 :: Monad m => Flow  m-j18 :: Monad m => Flow  m-k13 :: Monad m => IfNoneMatch -> Flow m-k07, k05 :: Monad m => Flow  m-l17, l15, l14, l13, l07, l05 :: Monad m => Flow  m-m20, m16, m07, m05 :: Monad m => Flow  m-n16, n11, n05 :: Monad m => Flow  m-o20, o18, o16, o14 :: Monad m => Flow  m-p11, p03 :: Monad m => Flow  m----------------------------------------------------------------------------------- B column---------------------------------------------------------------------------------b13 r@Resource{..} = do-    trace "b13"-    available <- lift serviceAvailable-    if available-        then b12 r-        else lift $ halt HTTP.status503--b12 r@Resource{..} = do-    trace "b12"-    -- known method-    req <- lift request-    let knownMethods = [ HTTP.methodGet-                       , HTTP.methodPost-                       , HTTP.methodHead-                       , HTTP.methodPut-                       , HTTP.methodDelete-                       , HTTP.methodTrace-                       , HTTP.methodConnect-                       , HTTP.methodOptions-                       , HTTP.methodPatch-                       ]-    if requestMethod req `elem` knownMethods-        then b11 r-        else lift $ halt HTTP.status501--b11 r@Resource{..} = do-    trace "b11"-    long <- lift uriTooLong-    if long-        then lift $ halt HTTP.status414-        else b10 r--b10 r@Resource{..} = do-    trace "b10"-    req <- lift request-    allowed <- lift allowedMethods-    if requestMethod req `elem` allowed-        then b09 r-        else do-            lift $ addResponseHeader ("Allow",  intercalate "," allowed)-            lift $ halt HTTP.status405--b09 r@Resource{..} = do-    trace "b09"-    malformed <- lift malformedRequest-    if malformed-        then lift $ halt HTTP.status400-        else b08 r--b08 r@Resource{..} = do-    trace "b08"-    authorized <- lift isAuthorized-    if authorized-        then b07 r-        else lift $ halt HTTP.status401--b07 r@Resource{..} = do-    trace "b07"-    forbid <- lift forbidden-    if forbid-        then lift $ halt HTTP.status403-        else b06 r--b06 r@Resource{..} = do-    trace "b06"-    validC <- lift validContentHeaders-    if validC-        then b05 r-        else lift $ halt HTTP.status501--b05 r@Resource{..} = do-    trace "b05"-    known <- lift knownContentType-    if known-        then b04 r-        else lift $ halt HTTP.status415--b04 r@Resource{..} = do-    trace "b04"-    large <- lift entityTooLarge-    if large-        then lift $ halt HTTP.status413-        else b03 r--b03 r@Resource{..} = do-    trace "b03"-    req <- lift request-    allowed <- lift allowedMethods-    if requestMethod req == HTTP.methodOptions-        then do-            lift $ addResponseHeader ("Allow",  intercalate "," allowed)-            lift $ halt HTTP.status204-        else c03 r----------------------------------------------------------------------------------- C column---------------------------------------------------------------------------------c04 r@Resource{..} = do-    trace "c04"-    req <- lift request-    provided <- lift contentTypesProvided-    let reqHeaders = requestHeaders req-        result = do-            acceptStr <- lookup HTTP.hAccept reqHeaders-            (acceptTyp, resource) <- mapAcceptMedia provided' acceptStr-            Just (acceptTyp, resource)-            where-                -- this is so that in addition to getting back the resource-                -- that we match, we also return the content-type provided-                -- by that resource.-                provided' = map dupContentType provided-                dupContentType (a, b) = (a, (a, b))--    case result of-      Nothing -> lift $ halt HTTP.status406-      Just res -> do-        modify (\fs -> fs { _contentType = Just res })-        d04 r--c03 r@Resource{..} = do-    trace "c03"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup HTTP.hAccept reqHeaders of-        (Just _h) ->-            c04 r-        Nothing ->-            d04 r----------------------------------------------------------------------------------- D column---------------------------------------------------------------------------------d05 r@Resource{..} = do-    trace "d05"-    langAvailable <- lift languageAvailable-    if langAvailable-        then e05 r-        else lift $ halt HTTP.status406--d04 r@Resource{..} = do-    trace "d04"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup HTTP.hAcceptLanguage reqHeaders of-        (Just _h) ->-            d05 r-        Nothing ->-            e05 r----------------------------------------------------------------------------------- E column---------------------------------------------------------------------------------e06 r@Resource{..} = do-    trace "e06"-    -- TODO: charset negotiation-    f06 r--e05 r@Resource{..} = do-    trace "e05"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup hAcceptCharset reqHeaders of-        (Just _h) ->-            e06 r-        Nothing ->-            f06 r----------------------------------------------------------------------------------- F column---------------------------------------------------------------------------------f07 r@Resource{..} = do-    trace "f07"-    -- TODO: encoding negotiation-    g07 r--f06 r@Resource{..} = do-    trace "f06"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup hAcceptEncoding reqHeaders of-        (Just _h) ->-            f07 r-        Nothing ->-            g07 r----------------------------------------------------------------------------------- G column---------------------------------------------------------------------------------g11 (IfMatch ifMatch) r@Resource{..} = do-    trace "g11"-    let etags = parseEtagList ifMatch-    if null etags-        then lift $ halt HTTP.status412-        else h10 r--g09 ifMatch r@Resource{..} = do-    trace "g09"-    case ifMatch of-        -- TODO: should we be stripping whitespace here?-        (IfMatch "*") ->-            h10 r-        _ ->-            g11 ifMatch r--g08 r@Resource{..} = do-    trace "g08"-    req <- lift request-    let reqHeaders = requestHeaders req-    case IfMatch <$> lookup hIfMatch reqHeaders of-        (Just h) ->-            g09 h r-        Nothing ->-            h10 r--g07 r@Resource{..} = do-    trace "g07"-    -- TODO: set Vary headers-    exists <- lift resourceExists-    if exists-        then g08 r-        else h07 r----------------------------------------------------------------------------------- H column---------------------------------------------------------------------------------h12 r@Resource{..} = do-    trace "h12"-    modified <- lift lastModified-    parsedDate <- lift $ requestHeaderDate hIfUnmodifiedSince-    let maybeGreater = do-            lastM <- modified-            headerDate <- parsedDate-            return (lastM > headerDate)-    if maybeGreater == Just True-        then lift $ halt HTTP.status412-        else i12 r--h11 r@Resource{..} = do-    trace "h11"-    parsedDate <- lift $ requestHeaderDate hIfUnmodifiedSince-    if isJust parsedDate-        then h12 r-        else i12 r--h10 r@Resource{..} = do-    trace "h10"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup hIfUnmodifiedSince reqHeaders of-        (Just _h) ->-            h11 r-        Nothing ->-            i12 r--h07 r@Resource {..} = do-    trace "h07"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup hIfMatch reqHeaders of-        -- TODO: should we be stripping whitespace here?-        (Just "*") ->-            lift $ halt HTTP.status412-        _ ->-            i07 r----------------------------------------------------------------------------------- I column---------------------------------------------------------------------------------i13 ifNoneMatch r@Resource{..} = do-    trace "i13"-    case ifNoneMatch of-        -- TODO: should we be stripping whitespace here?-        (IfNoneMatch "*") ->-            j18 r-        _ ->-            k13 ifNoneMatch r--i12 r@Resource{..} = do-    trace "i12"-    req <- lift request-    let reqHeaders = requestHeaders req-    case IfNoneMatch <$> lookup hIfNoneMatch reqHeaders of-        (Just h) ->-            i13 h r-        Nothing ->-            l13 r--i07 r = do-    trace "i07"-    req <- lift request-    if requestMethod req == HTTP.methodPut-        then i04 r-        else k07 r--i04 r@Resource{..} = do-    trace "i04"-    moved <- lift movedPermanently-    case moved of-        (Just loc) -> do-            lift $ addResponseHeader ("Location", loc)-            lift $ halt HTTP.status301-        Nothing ->-            p03 r----------------------------------------------------------------------------------- J column---------------------------------------------------------------------------------j18 _ = do-    trace "j18"-    req <- lift request-    let getOrHead = [ HTTP.methodGet-                    , HTTP.methodHead-                    ]-    if requestMethod req `elem` getOrHead-        then lift $ halt HTTP.status304-        else lift $ halt HTTP.status412----------------------------------------------------------------------------------- K column---------------------------------------------------------------------------------k13 (IfNoneMatch ifNoneMatch) r@Resource{..} = do-    trace "k13"-    let etags = parseEtagList ifNoneMatch-    if null etags-        then l13 r-        else j18 r--k07 r@Resource{..} = do-    trace "k07"-    prevExisted <- lift previouslyExisted-    if prevExisted-        then k05 r-        else l07 r--k05 r@Resource{..} = do-    trace "k05"-    moved <- lift movedPermanently-    case moved of-        (Just loc) -> do-            lift $ addResponseHeader ("Location", loc)-            lift $ halt HTTP.status301-        Nothing ->-            l05 r----------------------------------------------------------------------------------- L column---------------------------------------------------------------------------------l17 r@Resource{..} = do-    trace "l17"-    parsedDate <- lift $ requestHeaderDate HTTP.hIfModifiedSince-    modified <- lift lastModified-    let maybeGreater = do-            lastM <- modified-            ifModifiedSince <- parsedDate-            return (lastM > ifModifiedSince)-    if maybeGreater == Just True-        then m16 r-        else lift $ halt HTTP.status304--l15 r@Resource{..} = do-    trace "l15"-    parsedDate <- lift $ requestHeaderDate HTTP.hIfModifiedSince-    now <- lift requestTime-    let maybeGreater = (> now) <$> parsedDate-    if maybeGreater == Just True-        then m16 r-        else l17 r--l14 r@Resource{..} = do-    trace "l14"-    req <- lift request-    let reqHeaders = requestHeaders req-        dateHeader = lookup HTTP.hIfModifiedSince reqHeaders-        validDate = isJust (dateHeader >>= parseRfc1123Date)-    if validDate-        then l15 r-        else m16 r--l13 r@Resource{..} = do-    trace "l13"-    req <- lift request-    let reqHeaders = requestHeaders req-    case lookup HTTP.hIfModifiedSince reqHeaders of-        (Just _h) ->-            l14 r-        Nothing ->-            m16 r--l07 r = do-    trace "l07"-    req <- lift request-    if requestMethod req == HTTP.methodPost-        then m07 r-        else lift $ halt HTTP.status404--l05 r@Resource{..} = do-    trace "l05"-    moved <- lift movedTemporarily-    case moved of-        (Just loc) -> do-            lift $ addResponseHeader ("Location", loc)-            lift $ halt HTTP.status307-        Nothing ->-            m05 r----------------------------------------------------------------------------------- M column---------------------------------------------------------------------------------m20 r@Resource{..} = do-    trace "m20"-    deleteAccepted <- lift deleteResource-    if deleteAccepted-        then do-            completed <- lift deleteCompleted-            if completed-                then o20 r-                else lift $ halt HTTP.status202-        else lift $ halt HTTP.status500--m16 r = do-    trace "m16"-    req <- lift request-    if requestMethod req == HTTP.methodDelete-        then m20 r-        else n16 r--m07 r@Resource{..} = do-    trace "m07"-    allowMissing <- lift allowMissingPost-    if allowMissing-        then n11 r-        else lift $ halt HTTP.status404--m05 r = do-    trace "m05"-    req <- lift request-    if requestMethod req == HTTP.methodPost-        then n05 r-        else lift $ halt HTTP.status410----------------------------------------------------------------------------------- N column---------------------------------------------------------------------------------n16 r = do-    trace "n16"-    req <- lift request-    if requestMethod req == HTTP.methodPost-        then n11 r-        else o16 r--n11 r@Resource{..} = trace "n11" >> lift processPost >>= flip processPostAction r--create :: Monad m => [Text] -> Resource m -> FlowStateT m ()-create ts r = do-    loc <- lift (appendRequestPath ts)-    lift (addResponseHeader ("Location", loc))-    negotiateContentTypesAccepted r--processPostAction :: Monad m => PostResponse m -> Flow  m-processPostAction (PostCreate ts) r = do-    create ts r-    p11 r-processPostAction (PostCreateRedirect ts) r = do-    create ts r-    lift $ halt HTTP.status303-processPostAction (PostProcess p) r =-    lift p >> p11 r-processPostAction (PostProcessRedirect ts) _r = do-    locBs <- lift ts-    lift $ addResponseHeader ("Location", locBs)-    lift $ halt HTTP.status303--n05 r@Resource{..} = do-    trace "n05"-    allow <- lift allowMissingPost-    if allow-        then n11 r-        else lift $ halt HTTP.status410----------------------------------------------------------------------------------- O column---------------------------------------------------------------------------------o20 r = do-    trace "o20"-    body <- lift getResponseBody-    -- ResponseBody is a little tough to make an instance of 'Eq',-    -- so we just use a pattern match-    case body of-        Empty   -> lift $ halt HTTP.status204-        _       -> o18 r--o18 r@Resource{..} = do-    trace "o18"-    multiple <- lift multipleChoices-    if multiple-        then lift $ halt HTTP.status300-        else do-            -- TODO: set etag, expiration, etc. headers-            req <- lift request-            let getOrHead = [ HTTP.methodGet-                            , HTTP.methodHead-                            ]-            when (requestMethod req `elem` getOrHead) $ do-                m <- _contentType <$> get-                (cType, body) <- case m of-                    Nothing -> do-                        provided <- lift contentTypesProvided-                        return (head provided)-                    Just (cType, body) ->-                        return (cType, body)-                b <- lift body-                lift $ putResponseBody b-                lift $ addResponseHeader ("Content-Type", renderHeader cType)-            writeCacheTags r-            lift $ halt HTTP.status200--o16 r = do-    trace "o16"-    req <- lift request-    if requestMethod req == HTTP.methodPut-        then o14 r-        else o18 r--o14 r@Resource{..} = do-    trace "o14"-    conflict <- lift isConflict-    if conflict-        then lift $ halt HTTP.status409-        else negotiateContentTypesAccepted r >> p11 r----------------------------------------------------------------------------------- P column---------------------------------------------------------------------------------p11 r = do-    trace "p11"-    headers <- lift getResponseHeaders-    case lookup HTTP.hLocation headers of-        (Just _) ->-            lift $ halt HTTP.status201-        _ ->-            o20 r--p03 r@Resource{..} = do-    trace "p03"-    conflict <- lift isConflict-    if conflict-        then lift $ halt HTTP.status409-        else negotiateContentTypesAccepted r >> p11 r
− tests/examples/ghc8/Defer03.hs
@@ -1,7 +0,0 @@-module Main where--a :: Int-a = 'p'--main :: IO ()-main = print "No errors!"
− tests/examples/ghc8/Dep1.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE TypeInType #-}--module Dep1 where--import Data.Kind--data Proxy k (a :: k) = P--x :: Proxy * Int-x = P--y :: Proxy Bool True-y = P
− tests/examples/ghc8/Dep2.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE PolyKinds, GADTs #-}--module Dep2 where--data G (a :: k) where-  G1 :: G Int-  G2 :: G Maybe
− tests/examples/ghc8/Dep3.hs
@@ -1,26 +0,0 @@-{-# LANGUAGE TypeFamilies, TypeInType, GADTs #-}--module Dep3 where--import Data.Kind-import GHC.Exts ( Constraint )--type Star1 = *--data Id1 (a :: Star1) where-  Id1 :: a -> Id1 a--data Id1' :: Star1 -> * where-  Id1' :: a -> Id1' a--type family Star2 x where-  Star2 x = *--data Id2a (a :: Star2 Constraint) = Id2a a---data Id2 (a :: Star2 Constraint) where-  Id2 :: a -> Id2 a--data Id2' :: Star2 Constraint -> * where-  Id2' :: a -> Id2' a
− tests/examples/ghc8/DepFail1.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE TypeInType #-}--module DepFail1 where--data Proxy k (a :: k) = P--z :: Proxy Bool-z = P--a :: Proxy Int Bool-a = P
− tests/examples/ghc8/DeprM.hs
@@ -1,4 +0,0 @@-module DeprM {-# DEPRECATED "Here can be your menacing deprecation warning!" #-} where--f :: Int-f = 42
− tests/examples/ghc8/DeprU.hs
@@ -1,6 +0,0 @@-module A where--import DeprM -- here should be emitted deprecation warning--g :: Int-g = f
− tests/examples/ghc8/Deprecation.hs
@@ -1,16 +0,0 @@--module Deprecation-{-# Deprecated ["This is a module \"deprecation\"",-             "multi-line",-             "with unicode: Frère" ] #-}-   ( foo )- where--{-# DEPRECATEd   foo-         ["This is a multi-line",-          "deprecation message",-          "for foo"] #-}-foo :: Int-foo = 4--{-# DEPRECATED withBool        "The C2HS module will soon stop providing unnecessary\nutility functions. Please use standard FFI library functions instead." #-}
− tests/examples/ghc8/DsStrict.hs
@@ -1,37 +0,0 @@-{-# LANGUAGE Strict #-}-{-# OPTIONS_GHC -fno-warn-unused-binds #-}-module Main where--import Debug.Trace--f0 a = "fun"-f0' ~a = "fun2"--f1 ~n =-  case n of-    a -> "case"-f1' ~n =-  case n of-    ~a -> "case2"--f2 = \a -> "lamda"-f2' = \ ~a -> "lambda2"--newtype Age = MkAge Int--f4, f4' :: Age -> String-f4 (MkAge a) = "newtype"-f4' ~(MkAge a) = "newtype2"--main :: IO ()-main = mapM_ (\(what,f) -> putStrLn (f (v what))) fs-  where fs =-          [("fun",f0 )-          ,("fun lazy",f0')-          ,("case",f1)-          ,("case lazy",f1')-          ,("lambda",f2)-          ,("lambda lazy",f2')-          ,("newtype",(\ ~i -> f4 (MkAge i)))-          ,("newtype lazy",(\ ~i -> f4' (MkAge i)))]-        v n = trace ("evaluated in " ++ n) 1
− tests/examples/ghc8/DsStrictData.hs
@@ -1,48 +0,0 @@-{-# LANGUAGE ScopedTypeVariables, StrictData, GADTs #-}---- | Tests the StrictData LANGUAGE pragma.-module Main where--import qualified Control.Exception as E-import System.IO.Unsafe (unsafePerformIO)--data Strict a = S a-data Strict2 b = S2 !b-data Strict3 c where-  S3 :: c -> Strict3 c--data UStrict = US {-# UNPACK #-} Int--data Lazy d = L ~d-data Lazy2 e where-  L2 :: ~e -> Lazy2 e--main :: IO ()-main =-  do print (isBottom (S bottom))-     print (isBottom (S2 bottom))-     print (isBottom (US bottom))-     print (isBottom (S3 bottom))-     putStrLn ""-     print (not (isBottom (L bottom)))-     print (not (isBottom (L2 bottom)))-     print (not (isBottom (Just bottom))) -- sanity check----------------------------------------------------------------------------- Support for testing for bottom--bottom :: a-bottom = error "_|_"--isBottom :: a -> Bool-isBottom f = unsafePerformIO $-  (E.evaluate f >> return False) `E.catches`-    [ E.Handler (\(_ :: E.ArrayException)   -> return True)-    , E.Handler (\(_ :: E.ErrorCall)        -> return True)-    , E.Handler (\(_ :: E.NoMethodError)    -> return True)-    , E.Handler (\(_ :: E.NonTermination)   -> return True)-    , E.Handler (\(_ :: E.PatternMatchFail) -> return True)-    , E.Handler (\(_ :: E.RecConError)      -> return True)-    , E.Handler (\(_ :: E.RecSelError)      -> return True)-    , E.Handler (\(_ :: E.RecUpdError)      -> return True)-    ]
− tests/examples/ghc8/DsStrictFail.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE Strict #-}-module Main where--main = let False = True-       in return ()
− tests/examples/ghc8/DsStrictLet.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE Strict #-}-module Main where--import Debug.Trace--main = let False = trace "no binders" False -- evaluated--           a :: a -> a-           a = trace "polymorphic" id -- evaluated--           f :: Eq a => a -> a -> Bool-           f = trace "overloaded" (==) -- not evaluated--           xs :: [Int]-           xs = (trace "recursive" (:) 1 xs) -- evaluated-       in return ()
− tests/examples/ghc8/DsStrictWarn.hs
@@ -1,7 +0,0 @@-{-# OPTIONS_GHC -fwarn-incomplete-uni-patterns #-}-{-# LANGUAGE Strict #-}-module DsStrictWarn where---- should warn about non-exhaustive pattern match-w :: String -> String-w x = let (_:_) = x in "1"
− tests/examples/ghc8/Eq.hs
@@ -1,63 +0,0 @@-{-# LANGUAGE TypeOperators, DataKinds, PolyKinds, TypeFamilies,-             RankNTypes, FlexibleContexts, TemplateHaskell,-             UndecidableInstances, GADTs, DefaultSignatures #-}---------------------------------------------------------------------------------- |--- Module      :  Data.Singletons.Prelude.Eq--- Copyright   :  (C) 2013 Richard Eisenberg--- License     :  BSD-style (see LICENSE)--- Maintainer  :  Richard Eisenberg (eir@cis.upenn.edu)--- Stability   :  experimental--- Portability :  non-portable------ Defines the SEq singleton version of the Eq type class.-----------------------------------------------------------------------------------module Data.Singletons.Prelude.Eq (-  PEq(..), SEq(..),-  (:==$), (:==$$), (:==$$$), (:/=$), (:/=$$), (:/=$$$)-  ) where--import Data.Singletons.Prelude.Bool-import Data.Singletons-import Data.Singletons.Single-import Data.Singletons.Prelude.Instances-import Data.Singletons.Util-import Data.Singletons.Promote-import Data.Type.Equality---- NB: These must be defined by hand because of the custom handling of the--- default for (:==) to use Data.Type.Equality.==---- | The promoted analogue of 'Eq'. If you supply no definition for '(:==)',--- then it defaults to a use of '(==)', from @Data.Type.Equality@.-class kproxy ~ 'KProxy => PEq (kproxy :: KProxy a) where-  type (:==) (x :: a) (y :: a) :: Bool-  type (:/=) (x :: a) (y :: a) :: Bool--  type (x :: a) :== (y :: a) = x == y-  type (x :: a) :/= (y :: a) = Not (x :== y)--infix 4 :==-infix 4 :/=--$(genDefunSymbols [''(:==), ''(:/=)])---- | The singleton analogue of 'Eq'. Unlike the definition for 'Eq', it is required--- that instances define a body for '(%:==)'. You may also supply a body for '(%:/=)'.-class (kparam ~ 'KProxy) => SEq (kparam :: KProxy k) where-  -- | Boolean equality on singletons-  (%:==) :: forall (a :: k) (b :: k). Sing a -> Sing b -> Sing (a :== b)-  infix 4 %:==--  -- | Boolean disequality on singletons-  (%:/=) :: forall (a :: k) (b :: k). Sing a -> Sing b -> Sing (a :/= b)-  default (%:/=) :: forall (a :: k) (b :: k).-                    ((a :/= b) ~ Not (a :== b))-                 => Sing a -> Sing b -> Sing (a :/= b)-  a %:/= b = sNot (a %:== b)-  infix 4 %:/=--$(singEqInstances basicTypes)
− tests/examples/ghc8/ExpandSynsFail1.hs
@@ -1,4 +0,0 @@-type Foo = Int-type Bar = Bool--main = print $ (1 :: Foo) == (False :: Bar)
− tests/examples/ghc8/ExpandSynsFail2.hs
@@ -1,19 +0,0 @@--- In case of types with nested type synonyms, all synonyms should be expanded--{-# LANGUAGE RankNTypes #-}--import Control.Monad.ST--type Foo = Int-type Bar = Bool--type MyFooST s = ST s Foo-type MyBarST s = ST s Bar--fooGen :: forall s . MyFooST s-fooGen = undefined--barGen :: forall s . MyBarST s-barGen = undefined--main = print (runST fooGen == runST barGen)
− tests/examples/ghc8/ExpandSynsFail3.hs
@@ -1,23 +0,0 @@--- We test two things here:------ 1. We expand only as much as necessary. In this case, we shouldn't expand T.--- 2. When we find a difference(T3 and T5 in this case), we do minimal expansion---    e.g. we don't expand both of them to T1, instead we expand T5 to T3.--module Main where--type T5 = T4-type T4 = T3-type T3 = T2-type T2 = T1-type T1 = Int--type T a = Int -> Bool -> a -> String--f :: T (T3, T5, Int) -> Int-f = undefined--a :: Int-a = f (undefined :: T (T5, T3, Bool))--main = print a
− tests/examples/ghc8/ExpandSynsFail4.hs
@@ -1,11 +0,0 @@--- Synonyms shouldn't be expanded since type error is visible without--- expansions. Error message should not have `Type synonyms expanded: ...` part.--module Main where--type T a = [a]--f :: T Int -> String-f = undefined--main = putStrLn $ f (undefined :: T Bool)
− tests/examples/ghc8/ExportSyntax.hs
@@ -1,17 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}--module ExportSyntax ( A(.., NoA), Q(F,..), G(T,..,U)) where--data A = A | B--pattern NoA = B--data Q a = Q a--pattern F a = Q a--data G = G | H--pattern T = G--pattern U = H
− tests/examples/ghc8/ExportSyntaxImport.hs
@@ -1,7 +0,0 @@-module ExportSyntaxImport where--import ExportSyntax--foo = NoA--baz = A
− tests/examples/ghc8/ExprSigLocal.hs
@@ -1,12 +0,0 @@-{-# LANGUAGE PartialTypeSignatures, RankNTypes #-}--module ExprSigLocal where---- We expect this to compile fine,--- reporting that '_' stands 'a'--y :: forall b. b->b-y  = ((\x -> x) :: forall a. a -> _)--g :: forall a. a -> _-g x = x
− tests/examples/ghc8/Extends.hs
@@ -1,4 +0,0 @@-module Extends where--class BClass b where-  has :: b
− tests/examples/ghc8/ExtraConstraintsWildcardInExpressionSignature.hs
@@ -1,3 +0,0 @@-module ExtraConstraintsWildcardInExpressionSignature where--foo x y = ((==) :: _ => _) x y
− tests/examples/ghc8/ExtraConstraintsWildcardInPatternSignature.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE ScopedTypeVariables #-}-module ExtraConstraintsWildcardInPatternSignature where--foo (x :: _ => _) y = x == y
− tests/examples/ghc8/ExtraConstraintsWildcardInPatternSplice.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE ScopedTypeVariables #-}-module ExtraConstraintsWildcardInPatternSplice where--foo $( [p| (x :: _) |] ) = x
− tests/examples/ghc8/ExtraConstraintsWildcardInTypeSplice.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module ExtraConstraintsWildcardInTypeSplice where--import Language.Haskell.TH--metaType :: TypeQ-metaType = [t| _ => _ |]
− tests/examples/ghc8/ExtraConstraintsWildcardInTypeSplice2.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module ExtraConstraintsWildcardInTypeSplice2 where--import Language.Haskell.TH.Lib (wildCardT)--show' :: $(wildCardT) => a -> String-show' x = show x
− tests/examples/ghc8/ExtraConstraintsWildcardInTypeSpliceUsed.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module ExtraConstraintsWildcardInTypeSpliceUsed where--import ExtraConstraintsWildcardInTypeSplice---- An extra-constraints wild card is not supported in type splices-eq :: $(metaType)-eq x y = x == y
− tests/examples/ghc8/ExtraConstraintsWildcardTwice.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE PartialTypeSignatures #-}-module ExtraConstraintsWildcardTwice where--foo :: ((_), _) => a -> a-foo = undefined
− tests/examples/ghc8/F.hs
@@ -1,20 +0,0 @@--- | Thompson's group F.------ See eg. <https://en.wikipedia.org/wiki/Thompson_groups>------ Based mainly on James Michael Belk's PhD thesis \"THOMPSON'S GROUP F\";--- see <http://www.math.u-psud.fr/~breuilla/Belk.pdf>-----{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, BangPatterns, PatternSynonyms, DeriveFunctor #-}-module Math.Combinat.Groups.Thompson.F where---- | Remove the carets with the given indices--- (throws an error if there is no caret at the given index)-removeCarets :: [Int] -> T -> T-removeCarets idxs tree = if null rem then final else error ("removeCarets: some stuff remained: " ++ show rem) where--  (_,rem,final) =  go 0 idxs tree where--  go :: Int -> [Int] -> T -> (Int,[Int],T)-  go !x []         t  = (x + treeWidth t , [] , t)
− tests/examples/ghc8/FDsFromGivens2.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, GADTs #-}--module FDsFromGivens2 where--class C a b | a -> b where-   cop :: a -> b -> ()--data KCC where-  KCC :: C Char Char => () -> KCC--f :: C Char [a] => a -> a-f = undefined--bar (KCC _) = f
− tests/examples/ghc8/Families.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE PolyKinds, TypeFamilies, DataKinds, KindSignatures,-    TypeOperators, UndecidableInstances #-}--{-# LANGUAGE RankNTypes, LiberalTypeSynonyms, EmptyDataDecls #-}---- | A prelude for type-level programming with type families--module Prelude.Type.Families where---- >>> T :: T ((I 4) `Minus` (I 7))--- -3-type family (a :: k) `Minus` (b :: k) :: k-type instance a `Minus` b = a + Negate b-
− tests/examples/ghc8/FooBar.hs
@@ -1,4 +0,0 @@-module FooBar where--import Foo-import Bar
− tests/examples/ghc8/ForFree.hs
@@ -1,23 +0,0 @@--{-# LANGUAGE EmptyDataDecls #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE MultiParamTypeClasses #-}--- {-# LANGUAGE OverlappingInstances #-}-{-# LANGUAGE Rank2Types #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE UndecidableInstances #-}--module Control.ForFree where {---- | Free monad from a functor-;-  data Free f x = Pure x | Free (f (Free f x));--  deriving instance (Eq (f (Free f a)), Eq a) => Eq (Free f a);-  deriving instance (Ord (f (Free f a)), Ord a) => Ord (Free f a);-  deriving instance (Read (f (Free f a)), Read a) => Read (Free f a);-  deriving instance (Show (f (Free f a)), Show a) => Show (Free f a);-}
− tests/examples/ghc8/FromGrin2.hs
@@ -1,6 +0,0 @@---- ./hackage-roundtrip-work/ajhc-0.8.0.10/src/C/FromGrin2.hs--- orig line 588-convertExp :: Exp -> C (Statement,Expression)-convertExp (Prim Func { primArgTypes = as, primRetType = r, primRetArgs = rs@(_:_), ..} vs ty) = do-    return (mempty,e)
− tests/examples/ghc8/FrontendPlugin.hs
@@ -1,52 +0,0 @@-module FrontendPlugin where--import GhcPlugins-import qualified GHC-import GHC              ( Ghc, LoadHowMuch(..) )--import DriverPipeline hiding ( hsc_env )-import DriverPhases-import System.Exit-import Control.Monad-import Data.List--frontendPlugin :: FrontendPlugin-frontendPlugin = defaultFrontendPlugin {-        frontend = doMake-    }---- Copypasted from ghc/Main.hs-doMake :: [String] -> [(String,Maybe Phase)] -> Ghc ()-doMake opts srcs  = do-    liftIO $ print opts-    let (hs_srcs, non_hs_srcs) = partition haskellish srcs--        haskellish (f,Nothing) =-          looksLikeModuleName f || isHaskellUserSrcFilename f || '.' `notElem` f-        haskellish (_,Just phase) =-          phase `notElem` [ As True, As False, Cc, Cobjc, Cobjcxx, CmmCpp, Cmm-                          , StopLn]--    hsc_env <- GHC.getSession--    -- if we have no haskell sources from which to do a dependency-    -- analysis, then just do one-shot compilation and/or linking.-    -- This means that "ghc Foo.o Bar.o -o baz" links the program as-    -- we expect.-    if (null hs_srcs)-       then liftIO (oneShot hsc_env StopLn srcs)-       else do--    o_files <- mapM (\x -> liftIO $ compileFile hsc_env StopLn x)-                 non_hs_srcs-    dflags <- GHC.getSessionDynFlags-    let dflags' = dflags { ldInputs = map (FileOption "") o_files-                                      ++ ldInputs dflags }-    _ <- GHC.setSessionDynFlags dflags'--    targets <- mapM (uncurry GHC.guessTarget) hs_srcs-    GHC.setTargets targets-    ok_flag <- GHC.load LoadAllTargets--    when (failed ok_flag) (liftIO $ exitWith (ExitFailure 1))-    return ()
− tests/examples/ghc8/GA1r.hs
@@ -1,5 +0,0 @@-module GA1r where-import Text.ParserCombinators.Parsec--parseStr :: CharParser () String-parseStr = char '"' *> (many1 (noneOf "\"")) <* char '"'
− tests/examples/ghc8/Generate.hs
@@ -1,7 +0,0 @@-import Control.Monad (forM_)--main :: IO ()-main = forM_ [0..0xffff] $ \i -> do-   putStrLn $ ".section s" ++ show i ++ ",\"\",@progbits"-   putStrLn $ ".asciz \"Section " ++ show i ++ "\""-   putStrLn ""
− tests/examples/ghc8/Generic.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE CPP #-}-{-# LANGUAGE TypeOperators #-}-module Env.Generic-  ( Record(..)-  , type (?)(..)-  ) where--import Data.Promotion.Prelude (type (:+$), type (:*$), type (:^$), type (:-$))-import Options.Generic (Generic, ParseRecord, type (<?>)(..))
− tests/examples/ghc8/IPLocation.hs
@@ -1,45 +0,0 @@-{-# LANGUAGE ImplicitParams, RankNTypes #-}-{-# OPTIONS_GHC -dcore-lint #-}-module Main where--import GHC.Exception-import GHC.Types--f0 = putStrLn $ showCallStack ?loc-     -- should just show the location of ?loc--f1 :: (?loc :: CallStack) => IO ()-f1 = putStrLn $ showCallStack ?loc-     -- should show the location of ?loc *and* f1's call-site--f2 :: (?loc :: CallStack) => IO ()-f2 = do putStrLn $ showCallStack ?loc-        putStrLn $ showCallStack ?loc-     -- each ?loc should refer to a different location, but they should-     -- share f2's call-site--f3 :: ((?loc :: CallStack) => () -> IO ()) -> IO ()-f3 x = x ()-       -- the call-site for the functional argument should be added to the-       -- stack..--f4 :: (?loc :: CallStack) => ((?loc :: CallStack) => () -> IO ()) -> IO ()-f4 x = x ()-       -- as should the call-site for f4 itself--f5 :: (?loc1 :: CallStack) => ((?loc2 :: CallStack) => () -> IO ()) -> IO ()-f5 x = x ()-       -- we only push new call-sites onto CallStacks with the name IP name--f6 :: (?loc :: CallStack) => Int -> IO ()-f6 0 = putStrLn $ showCallStack ?loc-f6 n = f6 (n-1)-       -- recursive functions add a SrcLoc for each recursive call--main = do f0-          f1-          f2-          f3 (\ () -> putStrLn $ showCallStack ?loc)-          f4 (\ () -> putStrLn $ showCallStack ?loc)-          f5 (\ () -> putStrLn $ showCallStack ?loc3)-          f6 5
− tests/examples/ghc8/Improvement.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE TypeFamilies, FlexibleContexts, MultiParamTypeClasses, FlexibleInstances #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}-module Foo where--type family F a-type instance F Int = Bool--class C a b where--instance (b~Int) => C Bool b--blug :: C (F a) a => a -> F a-blug = error "Urk"--foo :: Bool-foo = blug undefined--- [W] C (F a0) a0, F a0 ~ Bool-
− tests/examples/ghc8/KindEqualities.hs
@@ -1,25 +0,0 @@-{-# LANGUAGE PolyKinds, GADTs, ExplicitForAll #-}-{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}--module KindEqualities where--data TyRep1 :: * -> * where-  TyInt1 :: TyRep1 Int-  TyBool1 :: TyRep1 Bool--zero1 :: forall a. TyRep1 a -> a-zero1 TyInt1 = 0-zero1 TyBool1 = False--data Proxy (a :: k) = P--data TyRep :: k -> * where-  TyInt :: TyRep Int-  TyBool :: TyRep Bool-  TyMaybe :: TyRep Maybe-  TyApp :: TyRep a -> TyRep b -> TyRep (a b)--zero :: forall (a :: *). TyRep a -> a-zero TyInt = 0-zero TyBool = False-zero (TyApp TyMaybe _) = Nothing
− tests/examples/ghc8/KindEqualities2.hs
@@ -1,43 +0,0 @@-{-# LANGUAGE DataKinds, GADTs, PolyKinds, TypeFamilies, ExplicitForAll,-             TemplateHaskell, UndecidableInstances, ScopedTypeVariables,-             TypeInType #-}--module KindEqualities2 where--import Data.Kind-import GHC.Exts ( Any )--data Kind = Star | Arr Kind Kind--data Ty :: Kind -> * where-  TInt :: Ty Star-  TBool :: Ty Star-  TMaybe :: Ty (Arr Star Star)-  TApp :: Ty (Arr k1 k2) -> Ty k1 -> Ty k2---data TyRep (k :: Kind) (t :: Ty k) where-  TyInt :: TyRep Star TInt-  TyBool :: TyRep Star TBool-  TyMaybe :: TyRep (Arr Star Star) TMaybe-  TyApp :: TyRep (Arr k1 k2) a -> TyRep k1 b -> TyRep k2 (TApp a b)--type family IK (k :: Kind)-type instance IK Star = *-type instance IK (Arr k1 k2) = IK k1 -> IK k2--$(return [])  -- necessary because the following instances depend on the-              -- previous ones.--type family I (t :: Ty k) :: IK k-type instance I TInt = Int-type instance I TBool = Bool-type instance I TMaybe = Maybe-type instance I (TApp a b) = (I a) (I b)--zero :: forall (a :: Ty 'Star). TyRep Star a -> I a-zero TyInt = 0-zero TyBool = False-zero (TyApp TyMaybe TyInt) = Nothing--main = print $ zero (TyApp TyMaybe TyInt)
− tests/examples/ghc8/KindLevels.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE DataKinds, PolyKinds #-}--module KindLevels where--data A-data B :: A -> *-data C :: B a -> *-data D :: C b -> *-data E :: D c -> *
− tests/examples/ghc8/ListComprehensions.hs
@@ -1,28 +0,0 @@-{-# LANGUAGE ParallelListComp,-             TransformListComp,-             RecordWildCards #-}---             MonadComprehensions,--module ListComprehensions where----import GHC.Exts-import qualified Data.Map as M-import Data.Ord (comparing)-import Data.List (sortBy)---- Let’s look at a simple, normal list comprehension to start:--parallelListComp :: [Int]-parallelListComp = [ x + y * z-                   | x <- [0..10]-                   | y <- [10..20]-                   | z <- [20..30]-                   ]--oldest :: [Int] -> [String]-oldest tbl = [ "str"-             | n <- tbl-             , then id-             ]
− tests/examples/ghc8/LiteralsTest2.hs
@@ -1,24 +0,0 @@-{-# LANGUAGE MagicHash #-}-module LiteralsTest2 where--x,y :: Int-x = 0003-y = 0x04--s :: String-s = "\x20"--c :: Char-c = '\x20'--d :: Double-d = 0.00--blah = x-  where-    charH = '\x41'#-    intH = 0004#-    wordH = 005##-    floatH = 3.20#-    doubleH = 04.16##-    x = 1
− tests/examples/ghc8/Main.hs
@@ -1,14 +0,0 @@--- Copyright (C) 2015, Luke Iannini--{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE ForeignFunctionInterface #-}--module Main where-import Printf ( pr )--foreign import ccall "talkToCxx" talkToCxx :: IO ()--main :: IO ()-main = do-  putStrLn ( $(pr "Hello From Template Haskell!") )-  talkToCxx
− tests/examples/ghc8/Manipulate.hs
@@ -1,39 +0,0 @@-{- |-Module      :  Control.Comonad.Sheet.Manipulate-Description :  Generic functions for manipulating multi-dimensional comonadic spreadsheets.-Copyright   :  Copyright (c) 2014 Kenneth Foner--Maintainer  :  kenneth.foner@gmail.com-Stability   :  experimental-Portability :  non-portable--This module defines the 'take', 'view', 'go', and 'insert' functions generically for any dimensionality of sheet. These-constitute the preferred way of manipulating sheets, providing an interface to: take finite slices ('take'), infinite-slices ('view'), move to locations ('go'), and insert finite or infinite structures ('insert').--}--{-# LANGUAGE DataKinds             #-}-{-# LANGUAGE FlexibleContexts      #-}-{-# LANGUAGE FlexibleInstances     #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE TypeFamilies          #-}-{-# LANGUAGE TypeOperators         #-}-{-# LANGUAGE UndecidableInstances  #-}--module Control.Comonad.Sheet.Manipulate where----- | In the case of a @Nested@ structure, @asDimensionalAs@ defaults to @asNestedAs@.-instance (NestedAs x (Nested ts y), AsDimensionalAs x (Nested ts y) ~ AsNestedAs x (Nested ts y)) => DimensionalAs x (Nested ts y) where-   type x `AsDimensionalAs` (Nested ts a) = x `AsNestedAs` (Nested ts a)-   asDimensionalAs = asNestedAs---- | @DimensionalAs@ also knows the dimensionality of an 'Indexed' sheet as well as regular @Nested@ structures.-instance (NestedAs x (Nested ts y)) => DimensionalAs x (Indexed ts y) where-   type x `AsDimensionalAs` (Indexed ts a) = x `AsNestedAs` (Nested ts a)-   x `asDimensionalAs` (Indexed i t)       = x `asNestedAs` t---instance DepIndex (a,b) TH_0 where-    type (a,b) `DepIndexResult` TH_0 = a-    (a,b) # TH_0 = a
− tests/examples/ghc8/Match.hs
@@ -1,38 +0,0 @@-{-# LANGUAGE GADTs               #-}-{-# LANGUAGE PatternGuards       #-}-{-# LANGUAGE RankNTypes          #-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE StandaloneDeriving  #-}-{-# LANGUAGE TypeOperators       #-}-{-# OPTIONS_HADDOCK hide #-}---- Discriminate binary functions that commute, and if so return the operands in--- a stable ordering such that matching recognises expressions modulo--- commutativity.----commutes-    :: forall acc env aenv a r.-       HashAcc acc-    -> PrimFun (a -> r)-    -> PreOpenExp acc env aenv a-    -> Maybe (PreOpenExp acc env aenv a)-commutes h f x = case f of-  PrimAdd _     -> Just (swizzle x)-  PrimMul _     -> Just (swizzle x)-  PrimBAnd _    -> Just (swizzle x)-  PrimBOr _     -> Just (swizzle x)-  PrimBXor _    -> Just (swizzle x)-  PrimEq _      -> Just (swizzle x)-  PrimNEq _     -> Just (swizzle x)-  PrimMax _     -> Just (swizzle x)-  PrimMin _     -> Just (swizzle x)-  PrimLAnd      -> Just (swizzle x)-  PrimLOr       -> Just (swizzle x)-  _             -> Nothing-  where-    swizzle :: PreOpenExp acc env aenv (a',a') -> PreOpenExp acc env aenv (a',a')-    swizzle exp-      | Tuple (NilTup `SnocTup` a `SnocTup` b)  <- exp-      , hashPreOpenExp h a > hashPreOpenExp h b = Tuple (NilTup `SnocTup` b `SnocTup` a)-      ---      | otherwise                               = exp
− tests/examples/ghc8/MonadFailErrors.hs
@@ -1,95 +0,0 @@--- Test purpose:--- Break properly if MonadFail is live--{-# LANGUAGE MonadFailDesugaring #-}--module MonadFailWarnings where--import Control.Monad.Fail-import Control.Monad.ST-import Data.Functor.Identity----general :: Monad m => m a-general = do-    Just x <- undefined-    undefined----general' :: MonadFail m => m a-general' = do-    Just x <- undefined-    undefined----identity :: Identity a-identity = do-    Just x <- undefined-    undefined----io :: IO a-io = do-    Just x <- undefined-    undefined----st :: ST s a-st = do-    Just x <- undefined-    undefined----reader :: r -> a-reader = do-    Just x <- undefined-    undefined----newtype Newtype a = Newtype a-newtypeMatch :: Identity a-newtypeMatch = do-    Newtype x <- undefined-    undefined----data Data a = Data a-singleConMatch :: Identity a-singleConMatch = do-    Data x <- undefined-    undefined----data Maybe' a = Nothing' | Just' a-instance Functor Maybe' where fmap = undefined-instance Applicative Maybe' where pure = undefined; (<*>) = undefined-instance Monad Maybe' where (>>=) = undefined-instance MonadFail Maybe' where fail = undefined-customFailable :: Maybe' a-customFailable = do-    Just x <- undefined-    undefined---wildcardx, explicitlyIrrefutable, wildcard_, tuple :: Monad m => m a-wildcardx = do-    x <- undefined-    undefined-explicitlyIrrefutable = do-    ~(x:y) <- undefined-    undefined-wildcard_ = do-    _ <- undefined-    undefined-tuple = do-    (a,b) <- undefined-    undefined
− tests/examples/ghc8/MonadFailWarnings.hs
@@ -1,107 +0,0 @@--- Test purpose:--- Ensure that MonadFail warnings are issued correctly if the warning flag--- is enabled--{-# OPTIONS_GHC -fwarn-missing-monadfail-instance #-}--module MonadFailWarnings where--import Control.Monad.Fail-import Control.Monad.ST-import Data.Functor.Identity------ should warn, because the do-block gets a general Monad constraint,--- but should have MonadFail-general :: Monad m => m a-general = do-    Just x <- undefined-    undefined------ should NOT warn, because the constraint is correct-general' :: MonadFail m => m a-general' = do-    Just x <- undefined-    undefined------ should warn, because Identity isn't MonadFail-identity :: Identity a-identity = do-    Just x <- undefined-    undefined------ should NOT warn, because IO is MonadFail-io :: IO a-io = do-    Just x <- undefined-    undefined------ should warn, because (ST s) is not MonadFail-st :: ST s a-st = do-    Just x <- undefined-    undefined------ should warn, because (r ->) is not MonadFail-reader :: r -> a-reader = do-    Just x <- undefined-    undefined------ should NOT warn, because matching against newtype-newtype Newtype a = Newtype a-newtypeMatch :: Identity a-newtypeMatch = do-    Newtype x <- undefined-    undefined------ should NOT warn, because Data has only one constructor-data Data a = Data a-singleConMatch :: Identity a-singleConMatch = do-    Data x <- undefined-    undefined------ should NOT warn, because Maybe' has a MonadFail instance-data Maybe' a = Nothing' | Just' a-instance Functor Maybe' where fmap = undefined-instance Applicative Maybe' where pure = undefined; (<*>) = undefined-instance Monad Maybe' where (>>=) = undefined-instance MonadFail Maybe' where fail = undefined-customFailable :: Maybe' a-customFailable = do-    Just x <- undefined-    undefined----- should NOT warn, because patterns always match-wildcardx, explicitlyIrrefutable, wildcard_, tuple :: Monad m => m a-wildcardx = do-    x <- undefined-    undefined-explicitlyIrrefutable = do-    ~(x:y) <- undefined-    undefined-wildcard_ = do-    _ <- undefined-    undefined-tuple = do-    (a,b) <- undefined-    undefined
− tests/examples/ghc8/MonadFailWarningsDisabled.hs
@@ -1,94 +0,0 @@--- Test purpose:--- Make sure that not enabling MonadFail warnings makes code compile just--- as it did in < 8.0--module MonadFailWarnings where--import Control.Monad.Fail-import Control.Monad.ST-import Data.Functor.Identity----general :: Monad m => m a-general = do-    Just x <- undefined-    undefined----general' :: MonadFail m => m a-general' = do-    Just x <- undefined-    undefined----identity :: Identity a-identity = do-    Just x <- undefined-    undefined----io :: IO a-io = do-    Just x <- undefined-    undefined----st :: ST s a-st = do-    Just x <- undefined-    undefined----reader :: r -> a-reader = do-    Just x <- undefined-    undefined----newtype Newtype a = Newtype a-newtypeMatch :: Identity a-newtypeMatch = do-    Newtype x <- undefined-    undefined----data Data a = Data a-singleConMatch :: Identity a-singleConMatch = do-    Data x <- undefined-    undefined----data Maybe' a = Nothing' | Just' a-instance Functor Maybe' where fmap = undefined-instance Applicative Maybe' where pure = undefined; (<*>) = undefined-instance Monad Maybe' where (>>=) = undefined-instance MonadFail Maybe' where fail = undefined-customFailable :: Maybe' a-customFailable = do-    Just x <- undefined-    undefined---wildcardx, explicitlyIrrefutable, wildcard_, tuple :: Monad m => m a-wildcardx = do-    x <- undefined-    undefined-explicitlyIrrefutable = do-    ~(x:y) <- undefined-    undefined-wildcard_ = do-    _ <- undefined-    undefined-tuple = do-    (a,b) <- undefined-    undefined
− tests/examples/ghc8/MonadFailWarningsWithRebindableSyntax.hs
@@ -1,14 +0,0 @@--- Test purpose:--- RebindableSyntax does not play that well with MonadFail, so here we ensure--- that when both settings are enabled we get the proper warning.--{-# OPTIONS_GHC -fwarn-missing-monadfail-instance #-}-{-# LANGUAGE RebindableSyntax #-}--module MonadFailWarningsWithRebindableSyntax where--import Prelude--test1 f g = do-    Just x <- f-    g
− tests/examples/ghc8/MultiLineWarningPragma.hs
@@ -1,18 +0,0 @@--{-# WARNING Logic-          , mkSolver-          , mkSimpleSolver-          , mkSolverForLogic-          , solverSetParams-          , solverPush-          , solverPop-          , solverReset-          , solverGetNumScopes-          , solverAssertCnstr-          , solverAssertAndTrack-          , solverCheck-          , solverCheckAndGetModel-          , solverGetReasonUnknown-          "New Z3 API support is still incomplete and fragile: \-          \you may experience segmentation faults!"-  #-}
− tests/examples/ghc8/MultiQuote.hs
@@ -1,39 +0,0 @@-{-# LANGUAGE BangPatterns #-}-{-# LANGUAGE CPP #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE DeriveFunctor #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE MagicHash #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE RankNTypes#-}-{-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE ViewPatterns #-}-{-# LANGUAGE EmptyCase #-}-{-# OPTIONS_GHC -fno-warn-orphans #-}---- | Internal API for the store package. The functions here which are--- not re-exported by "Data.Store" are less likely to have stable APIs.------ This module also defines most of the included 'Store' instances, for--- types from the base package and other commonly used packages--- (bytestring, containers, text, time, etc).-module Data.Store.Internal where----------------------------------------------------------------------------- Instances generated by TH--$($(derive [d|-    -- TODO-    -- instance Deriving (Store ())-    instance Deriving (Store All)-    instance Deriving (Store Any)-    instance Deriving (Store Void)-    instance Deriving (Store Bool)-    |]))-
− tests/examples/ghc8/MultiWayIf.hs
@@ -1,30 +0,0 @@-{-# LANGUAGE MultiWayIf #-}-module MultiWayIf where--foo = if | test1 -> e1-         | test2 witharg -> e2-         | otherwise -> def--bar = if { | test1 -> if { | test2 -> e1-                           | test3 -> e2 }-           | test4 -> e3-         }---- taken from GHC's test suite-x  = 10-x1 = if | x < 10 -> "< 10" | otherwise -> ""-x2 = if | x < 10 -> "< 10"-        | otherwise -> ""-x3 = if | x < 10 -> "< 10"-        | otherwise -> ""-x4 = if | True -> "yes"-x5 = if | True -> if | False -> 1 | True -> 2--x6 = if | x < 10 -> if | True -> "yes"-                       | False -> "no"-        | otherwise -> "maybe"--x7 = (if | True -> 0)---- issue #98-spam = if | () <- () -> ()
− tests/examples/ghc8/NamedWildcardInDataFamilyInstanceLHS.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE TypeFamilies, GADTs, DataKinds, PolyKinds, NamedWildCards #-}-module NamedWildcardInDataFamilyInstanceLHS where--data MyKind = A | B--data family Sing (a :: k)--data instance Sing (_a :: MyKind) where-    SingA :: Sing A-    SingB :: Sing B
− tests/examples/ghc8/NamedWildcardInTypeFamilyInstanceLHS.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE NamedWildCards #-}-module NamedWildcardInTypeFamilyInstanceLHS where--type family F a where-  F _t = Int
− tests/examples/ghc8/NamedWildcardInTypeSplice.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE NamedWildCards #-}-module NamedWildcardInTypeSplice where--import Language.Haskell.TH--metaType :: TypeQ-metaType = [t| _a -> _a |]
− tests/examples/ghc8/OutOfHeap.hs
@@ -1,10 +0,0 @@-import qualified Data.Array.Unboxed as UA-import Data.Word--main :: IO ()-main = print (UA.listArray (1, 2^(20::Int)) (repeat 0)-              :: UA.UArray Int Word64)-       -- this unboxed array should at least take:-       --   2^20 * 64 bits-       -- = 8 * (2^20 bytes)-       -- = 8 MiB (in heap)
− tests/examples/ghc8/OverloadedRecFldsFail04_A.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}--module OverloadedRecFldsFail04_A (U(..), V(MkV, x), Unused(..), u) where--data U = MkU { x :: Bool, y :: Bool }-data V = MkV { x :: Int }-data Unused = MkUnused { unused :: Bool }--u = MkU False True
− tests/examples/ghc8/OverloadedRecFldsFail06_A.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-{-# OPTIONS_GHC -fwarn-unused-binds #-}--module OverloadedRecFldsFail06_A (U(..), V(..), Unused(unused), u, getX, getY, z) where--data U = MkU { x :: Bool, y :: Bool } | MkU2 { used_locally :: Bool }-  deriving Show-data V = MkV { x :: Int } | MkV2 { y :: Bool }-data Unused = MkUnused { unused :: Bool, unused2 :: Bool, used_locally :: Bool }--u = MkU False True--z MkU2{used_locally=used_locally} = used_locally--getX MkU{x=x} = x-getY MkV2{y=y} = y
− tests/examples/ghc8/OverloadedRecFldsFail10_A.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module OverloadedRecFldsFail10_A where--data family F a-data instance F Int = MkFInt { foo :: Int }
− tests/examples/ghc8/OverloadedRecFldsFail10_B.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module OverloadedRecFldsFail10_B (F(..)) where--import OverloadedRecFldsFail10_A hiding (foo)--data instance F Bool = MkFBool { foo :: Int }
− tests/examples/ghc8/OverloadedRecFldsFail10_C.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE DuplicateRecordFields, TypeFamilies #-}-module OverloadedRecFldsFail10_C (F(..)) where--import OverloadedRecFldsFail10_A--data instance F Char = MkFChar { foo :: Char }
− tests/examples/ghc8/OverloadedRecFldsFail11_A.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-module OverloadedRecFldsFail11_A where--{-# WARNING foo "Warning on a record field" #-}-data S = MkS { foo :: Bool }-data T = MkT { foo :: Int }
− tests/examples/ghc8/OverloadedRecFldsFail12_A.hs
@@ -1,5 +0,0 @@-module OverloadedRecFldsFail12_A where--{-# WARNING foo "Deprecated foo" #-}-{-# WARNING bar "Deprecated bar" #-}-data T = MkT { foo :: Int, bar :: Int }
− tests/examples/ghc8/OverloadedRecFldsRun02_A.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}--module OverloadedRecFldsRun02_A (U(..), V(MkV, x), Unused(..), u) where--data U = MkU { x :: Bool, y :: Bool }-data V = MkV { x :: Int }-data Unused = MkUnused { unused :: Bool }--u = MkU False True
− tests/examples/ghc8/P.hs
@@ -1,12 +0,0 @@-module P where--import qualified Map-import qualified Set--foo = do-    let x = Map.insert 0 "foo"-          . Map.insert (6 :: Int) "foo"-          $ Map.empty-    print (Map.lookup 1 x)-    print (Set.size (Map.keysSet x))-    return x
− tests/examples/ghc8/PSQ.hs
@@ -1,4 +0,0 @@--data TourView a = Null-                | Single {-# UNPACK #-} !(Elem a)-                | (PSQ a) `Play` (PSQ a)
− tests/examples/ghc8/ParenFunBind.hs
@@ -1,5 +0,0 @@-module ParenFunBind where--(foo x)   y  = x + y-((bar x)) y  = x + y-((baz x)) (y) = x + y
− tests/examples/ghc8/ParenTypeSynonym.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE ConstraintKinds #-}-module ParenTypeSynonym where--type Is = (~)
− tests/examples/ghc8/PartialClassMethodSignature2.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE PartialTypeSignatures #-}-module PartialClassMethodSignature2 where--class Foo a where-  foo :: (Eq a, _) => a -> a
− tests/examples/ghc8/PluralS.hs
@@ -1,27 +0,0 @@--- Test purpose:------ Ensure the plural "s" in warnings is only shown if there are more than--- one entries--{-# OPTIONS_GHC -Wredundant-constraints #-}-{-# OPTIONS_GHC -Wtype-defaults #-}--module PluralS () where------ Defaulting type classes--defaultingNum = 123 `seq` ()--defaultingNumAndShow = show 123------ Redundant constraints--redundantNum :: (Num a, Num a) => a-redundantNum = 123--redundantMultiple :: (Num a, Show a, Num a, Eq a, Eq a) => a-redundantMultiple = 123
− tests/examples/ghc8/PolyInstances.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE PolyKinds, FlexibleInstances, ScopedTypeVariables,-             UndecidableInstances #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}--module PolyInstances where--import GHC.Exts-import Data.Proxy--class C (a :: k)--instance (C a, C b) => C (a b)--data Dict :: Constraint -> *--instance C Dict--foo :: C p => proxy p -> ()-foo = undefined--bar :: forall (p :: Constraint) proxy. C p => proxy p -> ()-bar _ = foo (Proxy :: Proxy (Dict p))
− tests/examples/ghc8/PopCnt.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE MagicHash,GHCForeignImportPrim,UnliftedFFITypes #-}-module Main where--import GHC.Exts--foreign import prim "do_popcnt32" popcnt32 :: Int# -> Int#--main = print (I# (popcnt32 0xffff#))-
− tests/examples/ghc8/Ppr017.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-{-# LANGUAGE ExplicitNamespaces #-}-module Imports( f, type (+), pattern Single ) where--import GHC.TypeLits--pattern Single x = [x]--f = undefined
− tests/examples/ghc8/Primop.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE GHCForeignImportPrim, MagicHash,-             UnliftedFFITypes, UnboxedTuples #-}--import GHC.Exts--foreign import prim "dummy"-   dummy :: Word# -> Word#--foreign import prim "dummy2"-   dummy2 :: Any -> State# RealWorld -> (# State# RealWorld, Word# #)
− tests/examples/ghc8/Printf.hs
@@ -1,34 +0,0 @@--- Copyright (C) 2015, Luke Iannini--{-# LANGUAGE TemplateHaskell #-}-module Printf where---- Skeletal printf from the paper:--- http://research.microsoft.com/pubs/67015/meta-haskell.pdf--- It needs to be in a separate module to the one where--- you intend to use it.---- Import some Template Haskell syntax-import Language.Haskell.TH---- Describe a format string-data Format = D | S | L String---- Parse a format string.  This is left largely to you--- as we are here interested in building our first ever--- Template Haskell program and not in building printf.-parse :: String -> [Format]-parse s   = [ L s ]---- Generate Haskell source code from a parsed representation--- of the format string.  This code will be spliced into--- the module which calls "pr", at compile time.-gen :: [Format] -> Q Exp-gen [D]   = [| \n -> show n |]-gen [S]   = [| \s -> s |]-gen [L s] = stringE s---- Here we generate the Haskell code for the splice--- from an input format string.-pr :: String -> Q Exp-pr s = gen (parse s)
− tests/examples/ghc8/PromotedClass.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE TypeInType, GADTs #-}--module PromotedClass where--import Data.Proxy--data X a where-  MkX :: Show a => a -> X a--foo :: Proxy ('MkX 'True)-foo = Proxy
− tests/examples/ghc8/Q.hs
@@ -1,7 +0,0 @@-module Q where--import qualified Map-import Map(Map)--mymember :: Int -> Map Int a -> Bool-mymember k m = Map.member k m || Map.member (k + 1) m
− tests/examples/ghc8/QQ.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module QQ where--import Language.Haskell.TH.Quote-import Language.Haskell.TH.Syntax-import Language.Haskell.TH--pq = QuasiQuoter { quoteDec = \_ -> return [sig],-                   quoteType = \_ -> undefined,-                   quoteExp = \_ -> undefined,-                   quotePat = \_ -> undefined }--sig = SigD (mkName "f") (ArrowT `AppT` int `AppT` int)-int = ConT (mkName "Int")
− tests/examples/ghc8/Query.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE CPP #-}--module AWS.Lib.Query where--requestQuery = do-    if st < 400-#ifdef DEBUG-        do  e-#else-        then return body-        else fail "not reached"-#endif-
− tests/examples/ghc8/RAE_T32a.hs
@@ -1,35 +0,0 @@-{-# LANGUAGE TemplateHaskell, RankNTypes, TypeOperators, DataKinds,-             PolyKinds, TypeFamilies, GADTs, TypeInType #-}--module RAE_T32a where--import Data.Kind--data family Sing (k :: *) :: k -> *--data TyArr' (a :: *) (b :: *) :: *-type TyArr (a :: *) (b :: *) = TyArr' a b -> *-type family (a :: TyArr k1 k2) @@ (b :: k1) :: k2-data TyPi' (a :: *) (b :: TyArr a *) :: *-type TyPi (a :: *) (b :: TyArr a *) = TyPi' a b -> *-type family (a :: TyPi k1 k2) @@@ (b :: k1) :: k2 @@ b-$(return [])--data MkStar (p :: *) (x :: TyArr' p *)-type instance MkStar p @@ x = *-$(return [])--data Sigma (p :: *) (r :: TyPi p (MkStar p)) :: * where-  Sigma ::-    forall (p :: *) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a).-    Sing * p -> Sing (TyPi p (MkStar p)) r -> Sing p a -> Sing (r @@@ a) b -> Sigma p r-$(return [])--data instance Sing Sigma (Sigma p r) x where-  SSigma ::-    forall (p :: *) (r :: TyPi p (MkStar p)) (a :: p) (b :: r @@@ a)-    (sp :: Sing * p) (sr :: Sing (TyPi p (MkStar p)) r) (sa :: Sing p a) (sb :: Sing (r @@@ a) b).-    Sing (Sing (r @@@ a) b) sb ->-    Sing (Sigma p r) ('Sigma sp sr sa sb)---- I (RAE) believe this last definition is ill-typed.
− tests/examples/ghc8/RAE_T32b.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE TemplateHaskell, TypeFamilies, GADTs, DataKinds, PolyKinds,-             RankNTypes, TypeOperators, TypeInType #-}--module RAE_T32b where--import Data.Kind--data family Sing (k :: *) :: k -> *--data TyArr (a :: *) (b :: *) :: *-type family (a :: TyArr k1 k2 -> *) @@ (b :: k1) :: k2-$(return [])--data Sigma (p :: *) (r :: TyArr p * -> *) :: * where-  Sigma :: forall (p :: *) (r :: TyArr p * -> *) (a :: p) (b :: r @@ a).-           Sing * p -> Sing (TyArr p * -> *) r -> Sing p a -> Sing (r @@ a) b -> Sigma p r-$(return [])--data instance Sing (Sigma p r) (x :: Sigma p r) :: * where-  SSigma :: forall (p :: *) (r :: TyArr p * -> *) (a :: p) (b :: r @@ a)-            (sp :: Sing * p) (sr :: Sing (TyArr p * -> *) r) (sa :: Sing p a) (sb :: Sing (r @@ a) b).-            Sing (Sing (r @@ a) b) sb ->-            Sing (Sigma p r) ('Sigma sp sr sa sb)
− tests/examples/ghc8/Rae31.hs
@@ -1,24 +0,0 @@-{-# LANGUAGE TemplateHaskell, TypeOperators, PolyKinds, DataKinds,-             TypeFamilies, TypeInType #-}--module A where--import Data.Kind--data family Sing (k :: *) :: k -> *-type Sing' (x :: k) = Sing k x-data TyFun' (a :: *) (b :: *) :: *-type TyFun (a :: *) (b :: *) = TyFun' a b -> *-type family (a :: TyFun k1 k2) @@ (b :: k1) :: k2-data TyPi' (a :: *) (b :: TyFun a *) :: *-type TyPi (a :: *) (b :: TyFun a *) = TyPi' a b -> *-type family (a :: TyPi k1 k2) @@@ (b :: k1) :: k2 @@ b-$(return [])--data A (a :: *) (b :: a) (c :: TyFun' a *) -- A :: forall a -> a -> a ~> *-type instance (@@) (A a b) c = *-$(return [])-data B (a :: *) (b :: TyFun' a *) -- B :: forall a -> a ~> *-type instance (@@) (B a) b = TyPi a (A a b)-$(return [])-data C (a :: *) (b :: TyPi a (B a)) (c :: a) (d :: a) (e :: TyFun' (b @@@ c @@@ d) *)
− tests/examples/ghc8/RaeBlogPost.hs
@@ -1,63 +0,0 @@-{-# LANGUAGE DataKinds, PolyKinds, GADTs, TypeOperators, TypeFamilies,-             TypeInType #-}-{-# OPTIONS_GHC -fwarn-unticked-promoted-constructors #-}--module RaeBlogPost where--import Data.Kind---- a Proxy type with an explicit kind-data Proxy k (a :: k) = P-prox :: Proxy * Bool-prox = P--prox2 :: Proxy Bool 'True-prox2 = P---- implicit kinds still work-data A-data B :: A -> *-data C :: B a -> *-data D :: C b -> *-data E :: D c -> *--- note that E :: forall (a :: A) (b :: B a) (c :: C b). D c -> *---- a kind-indexed GADT-data TypeRep (a :: k) where-  TInt   :: TypeRep Int-  TMaybe :: TypeRep Maybe-  TApp   :: TypeRep a -> TypeRep b -> TypeRep (a b)--zero :: TypeRep a -> a-zero TInt            = 0-zero (TApp TMaybe _) = Nothing--data Nat = Zero | Succ Nat-type family a + b where-  'Zero     + b = b-  ('Succ a) + b = 'Succ (a + b)--data Vec :: * -> Nat -> * where-  Nil  :: Vec a 'Zero-  (:>) :: a -> Vec a n -> Vec a ('Succ n)-infixr 5 :>---- promoted GADT, and using + as a "kind family":-type family (x :: Vec a n) ++ (y :: Vec a m) :: Vec a (n + m) where-  'Nil      ++ y = y-  (h ':> t) ++ y = h ':> (t ++ y)---- datatype that mentions *-data U = Star (*)-       | Bool Bool---- kind synonym-type Monadish = * -> *-class MonadTrans (t :: Monadish -> Monadish) where-  lift :: Monad m => m a -> t m a-data Free :: Monadish where-  Return :: a -> Free a-  Bind   :: Free a -> (a -> Free b) -> Free b---- yes, * really does have type *.-type Star = (* :: (* :: (* :: *)))
− tests/examples/ghc8/RandomPGC.hs
@@ -1,597 +0,0 @@-{-# LANGUAGE CPP #-}-#if __GLASGOW_HASKELL__ >= 701-{-# LANGUAGE Trustworthy #-}-#endif---------------------------------------------------------------------------------- |--- Module      :  System.Random--- Copyright   :  (c) The University of Glasgow 2001--- License     :  BSD-style (see the file LICENSE in the 'random' repository)------ Maintainer  :  libraries@haskell.org--- Stability   :  stable--- Portability :  portable------ This library deals with the common task of pseudo-random number--- generation. The library makes it possible to generate repeatable--- results, by starting with a specified initial random number generator,--- or to get different results on each run by using the system-initialised--- generator or by supplying a seed from some other source.------ The library is split into two layers:------ * A core /random number generator/ provides a supply of bits.---   The class 'RandomGen' provides a common interface to such generators.---   The library provides one instance of 'RandomGen', the abstract---   data type 'StdGen'.  Programmers may, of course, supply their own---   instances of 'RandomGen'.------ * The class 'Random' provides a way to extract values of a particular---   type from a random number generator.  For example, the 'Float'---   instance of 'Random' allows one to generate random values of type---   'Float'.------ This implementation uses the Portable Combined Generator of L'Ecuyer--- ["System.Random\#LEcuyer"] for 32-bit computers, transliterated by--- Lennart Augustsson.  It has a period of roughly 2.30584e18.-----------------------------------------------------------------------------------#include "MachDeps.h"--module RandomPGC-        (--        -- $intro--        -- * Random number generators--#ifdef ENABLE_SPLITTABLEGEN-          RandomGen(next, genRange)-        , SplittableGen(split)-#else-          RandomGen(next, genRange, split)-#endif-        -- ** Standard random number generators-        , StdGen-        , mkStdGen--        -- ** The global random number generator--        -- $globalrng--        , getStdRandom-        , getStdGen-        , setStdGen-        , newStdGen--        -- * Random values of various types-        , Random ( random,   randomR,-                   randoms,  randomRs,-                   randomIO, randomRIO )--        -- * References-        -- $references--        ) where--import Prelude--import Data.Bits-import Data.Int-import Data.Word-import Foreign.C.Types--#ifdef __NHC__-import CPUTime          ( getCPUTime )-import Foreign.Ptr      ( Ptr, nullPtr )-import Foreign.C        ( CTime, CUInt )-#else-import System.CPUTime   ( getCPUTime )-import Data.Time        ( getCurrentTime, UTCTime(..) )-import Data.Ratio       ( numerator, denominator )-#endif-import Data.Char        ( isSpace, chr, ord )-import System.IO.Unsafe ( unsafePerformIO )-import Data.IORef       ( IORef, newIORef, readIORef, writeIORef )-import Data.IORef       ( atomicModifyIORef' )-import Numeric          ( readDec )--#ifdef __GLASGOW_HASKELL__-import GHC.Exts         ( build )-#else--- | A dummy variant of build without fusion.-{-# INLINE build #-}-build :: ((a -> [a] -> [a]) -> [a] -> [a]) -> [a]-build g = g (:) []-#endif---- The standard nhc98 implementation of Time.ClockTime does not match--- the extended one expected in this module, so we lash-up a quick--- replacement here.-#ifdef __NHC__-foreign import ccall "time.h time" readtime :: Ptr CTime -> IO CTime-getTime :: IO (Integer, Integer)-getTime = do CTime t <- readtime nullPtr;  return (toInteger t, 0)-#else-getTime :: IO (Integer, Integer)-getTime = do-  utc <- getCurrentTime-  let daytime = toRational $ utctDayTime utc-  return $ quotRem (numerator daytime) (denominator daytime)-#endif---- | The class 'RandomGen' provides a common interface to random number--- generators.----#ifdef ENABLE_SPLITTABLEGEN--- Minimal complete definition: 'next'.-#else--- Minimal complete definition: 'next' and 'split'.-#endif--class RandomGen g where--   -- |The 'next' operation returns an 'Int' that is uniformly distributed-   -- in the range returned by 'genRange' (including both end points),-   -- and a new generator.-   next     :: g -> (Int, g)--   -- |The 'genRange' operation yields the range of values returned by-   -- the generator.-   ---   -- It is required that:-   ---   -- * If @(a,b) = 'genRange' g@, then @a < b@.-   ---   -- * 'genRange' always returns a pair of defined 'Int's.-   ---   -- The second condition ensures that 'genRange' cannot examine its-   -- argument, and hence the value it returns can be determined only by the-   -- instance of 'RandomGen'.  That in turn allows an implementation to make-   -- a single call to 'genRange' to establish a generator's range, without-   -- being concerned that the generator returned by (say) 'next' might have-   -- a different range to the generator passed to 'next'.-   ---   -- The default definition spans the full range of 'Int'.-   genRange :: g -> (Int,Int)--   -- default method-   genRange _ = (minBound, maxBound)--#ifdef ENABLE_SPLITTABLEGEN--- | The class 'SplittableGen' proivides a way to specify a random number---   generator that can be split into two new generators.-class SplittableGen g where-#endif-   -- |The 'split' operation allows one to obtain two distinct random number-   -- generators. This is very useful in functional programs (for example, when-   -- passing a random number generator down to recursive calls), but very-   -- little work has been done on statistically robust implementations of-   -- 'split' (["System.Random\#Burton", "System.Random\#Hellekalek"]-   -- are the only examples we know of).-   split    :: g -> (g, g)--{- |-The 'StdGen' instance of 'RandomGen' has a 'genRange' of at least 30 bits.--The result of repeatedly using 'next' should be at least as statistically-robust as the /Minimal Standard Random Number Generator/ described by-["System.Random\#Park", "System.Random\#Carta"].-Until more is known about implementations of 'split', all we require is-that 'split' deliver generators that are (a) not identical and-(b) independently robust in the sense just given.--The 'Show' and 'Read' instances of 'StdGen' provide a primitive way to save the-state of a random number generator.-It is required that @'read' ('show' g) == g@.--In addition, 'reads' may be used to map an arbitrary string (not necessarily one-produced by 'show') onto a value of type 'StdGen'. In general, the 'Read'-instance of 'StdGen' has the following properties:--* It guarantees to succeed on any string.--* It guarantees to consume only a finite portion of the string.--* Different argument strings are likely to result in different results.---}--data StdGen- = StdGen !Int32 !Int32--instance RandomGen StdGen where-  next  = stdNext-  genRange _ = stdRange--#ifdef ENABLE_SPLITTABLEGEN-instance SplittableGen StdGen where-#endif-  split = stdSplit--instance Show StdGen where-  showsPrec p (StdGen s1 s2) =-     showsPrec p s1 .-     showChar ' ' .-     showsPrec p s2--instance Read StdGen where-  readsPrec _p = \ r ->-     case try_read r of-       r'@[_] -> r'-       _   -> [stdFromString r] -- because it shouldn't ever fail.-    where-      try_read r = do-         (s1, r1) <- readDec (dropWhile isSpace r)-         (s2, r2) <- readDec (dropWhile isSpace r1)-         return (StdGen s1 s2, r2)--{-- If we cannot unravel the StdGen from a string, create- one based on the string given.--}-stdFromString         :: String -> (StdGen, String)-stdFromString s        = (mkStdGen num, rest)-        where (cs, rest) = splitAt 6 s-              num        = foldl (\a x -> x + 3 * a) 1 (map ord cs)---{- |-The function 'mkStdGen' provides an alternative way of producing an initial-generator, by mapping an 'Int' into a generator. Again, distinct arguments-should be likely to produce distinct generators.--}-mkStdGen :: Int -> StdGen -- why not Integer ?-mkStdGen s = mkStdGen32 $ fromIntegral s--{--From ["System.Random\#LEcuyer"]: "The integer variables s1 and s2 ... must be-initialized to values in the range [1, 2147483562] and [1, 2147483398]-respectively."--}-mkStdGen32 :: Int32 -> StdGen-mkStdGen32 sMaybeNegative = StdGen (s1+1) (s2+1)-      where-        -- We want a non-negative number, but we can't just take the abs-        -- of sMaybeNegative as -minBound == minBound.-        s       = sMaybeNegative .&. maxBound-        (q, s1) = s `divMod` 2147483562-        s2      = q `mod` 2147483398--createStdGen :: Integer -> StdGen-createStdGen s = mkStdGen32 $ fromIntegral s--{- |-With a source of random number supply in hand, the 'Random' class allows the-programmer to extract random values of a variety of types.--Minimal complete definition: 'randomR' and 'random'.---}--class Random a where-  -- | Takes a range /(lo,hi)/ and a random number generator-  -- /g/, and returns a random value uniformly distributed in the closed-  -- interval /[lo,hi]/, together with a new generator. It is unspecified-  -- what happens if /lo>hi/. For continuous types there is no requirement-  -- that the values /lo/ and /hi/ are ever produced, but they may be,-  -- depending on the implementation and the interval.-  randomR :: RandomGen g => (a,a) -> g -> (a,g)--  -- | The same as 'randomR', but using a default range determined by the type:-  ---  -- * For bounded types (instances of 'Bounded', such as 'Char'),-  --   the range is normally the whole type.-  ---  -- * For fractional types, the range is normally the semi-closed interval-  -- @[0,1)@.-  ---  -- * For 'Integer', the range is (arbitrarily) the range of 'Int'.-  random  :: RandomGen g => g -> (a, g)--  -- | Plural variant of 'randomR', producing an infinite list of-  -- random values instead of returning a new generator.-  {-# INLINE randomRs #-}-  randomRs :: RandomGen g => (a,a) -> g -> [a]-  randomRs ival g = build (\cons _nil -> buildRandoms cons (randomR ival) g)--  -- | Plural variant of 'random', producing an infinite list of-  -- random values instead of returning a new generator.-  {-# INLINE randoms #-}-  randoms  :: RandomGen g => g -> [a]-  randoms  g      = build (\cons _nil -> buildRandoms cons random g)--  -- | A variant of 'randomR' that uses the global random number generator-  -- (see "System.Random#globalrng").-  randomRIO :: (a,a) -> IO a-  randomRIO range  = getStdRandom (randomR range)--  -- | A variant of 'random' that uses the global random number generator-  -- (see "System.Random#globalrng").-  randomIO  :: IO a-  randomIO         = getStdRandom random---- | Produce an infinite list-equivalent of random values.-{-# INLINE buildRandoms #-}-buildRandoms :: RandomGen g-             => (a -> as -> as)  -- ^ E.g. '(:)' but subject to fusion-             -> (g -> (a,g))     -- ^ E.g. 'random'-             -> g                -- ^ A 'RandomGen' instance-             -> as-buildRandoms cons rand = go-  where-    -- The seq fixes part of #4218 and also makes fused Core simpler.-    go g = x `seq` (x `cons` go g') where (x,g') = rand g---instance Random Integer where-  randomR ival g = randomIvalInteger ival g-  random g       = randomR (toInteger (minBound::Int), toInteger (maxBound::Int)) g--instance Random Int        where randomR = randomIvalIntegral; random = randomBounded-instance Random Int8       where randomR = randomIvalIntegral; random = randomBounded-instance Random Int16      where randomR = randomIvalIntegral; random = randomBounded-instance Random Int32      where randomR = randomIvalIntegral; random = randomBounded-instance Random Int64      where randomR = randomIvalIntegral; random = randomBounded--#ifndef __NHC__--- Word is a type synonym in nhc98.-instance Random Word       where randomR = randomIvalIntegral; random = randomBounded-#endif-instance Random Word8      where randomR = randomIvalIntegral; random = randomBounded-instance Random Word16     where randomR = randomIvalIntegral; random = randomBounded-instance Random Word32     where randomR = randomIvalIntegral; random = randomBounded-instance Random Word64     where randomR = randomIvalIntegral; random = randomBounded--instance Random CChar      where randomR = randomIvalIntegral; random = randomBounded-instance Random CSChar     where randomR = randomIvalIntegral; random = randomBounded-instance Random CUChar     where randomR = randomIvalIntegral; random = randomBounded-instance Random CShort     where randomR = randomIvalIntegral; random = randomBounded-instance Random CUShort    where randomR = randomIvalIntegral; random = randomBounded-instance Random CInt       where randomR = randomIvalIntegral; random = randomBounded-instance Random CUInt      where randomR = randomIvalIntegral; random = randomBounded-instance Random CLong      where randomR = randomIvalIntegral; random = randomBounded-instance Random CULong     where randomR = randomIvalIntegral; random = randomBounded-instance Random CPtrdiff   where randomR = randomIvalIntegral; random = randomBounded-instance Random CSize      where randomR = randomIvalIntegral; random = randomBounded-instance Random CWchar     where randomR = randomIvalIntegral; random = randomBounded-instance Random CSigAtomic where randomR = randomIvalIntegral; random = randomBounded-instance Random CLLong     where randomR = randomIvalIntegral; random = randomBounded-instance Random CULLong    where randomR = randomIvalIntegral; random = randomBounded-instance Random CIntPtr    where randomR = randomIvalIntegral; random = randomBounded-instance Random CUIntPtr   where randomR = randomIvalIntegral; random = randomBounded-instance Random CIntMax    where randomR = randomIvalIntegral; random = randomBounded-instance Random CUIntMax   where randomR = randomIvalIntegral; random = randomBounded--instance Random Char where-  randomR (a,b) g =-       case (randomIvalInteger (toInteger (ord a), toInteger (ord b)) g) of-         (x,g') -> (chr x, g')-  random g        = randomR (minBound,maxBound) g--instance Random Bool where-  randomR (a,b) g =-      case (randomIvalInteger (bool2Int a, bool2Int b) g) of-        (x, g') -> (int2Bool x, g')-       where-         bool2Int :: Bool -> Integer-         bool2Int False = 0-         bool2Int True  = 1--         int2Bool :: Int -> Bool-         int2Bool 0     = False-         int2Bool _     = True--  random g        = randomR (minBound,maxBound) g--{-# INLINE randomRFloating #-}-randomRFloating :: (Fractional a, Num a, Ord a, Random a, RandomGen g) => (a, a) -> g -> (a, g)-randomRFloating (l,h) g-    | l>h       = randomRFloating (h,l) g-    | otherwise = let (coef,g') = random g in-                  (2.0 * (0.5*l + coef * (0.5*h - 0.5*l)), g')  -- avoid overflow--instance Random Double where-  randomR = randomRFloating-  random rng     =-    case random rng of-      (x,rng') ->-          -- We use 53 bits of randomness corresponding to the 53 bit significand:-          ((fromIntegral (mask53 .&. (x::Int64)) :: Double)-           /  fromIntegral twoto53, rng')-   where-    twoto53 = (2::Int64) ^ (53::Int64)-    mask53 = twoto53 - 1--instance Random Float where-  randomR = randomRFloating-  random rng =-    -- TODO: Faster to just use 'next' IF it generates enough bits of randomness.-    case random rng of-      (x,rng') ->-          -- We use 24 bits of randomness corresponding to the 24 bit significand:-          ((fromIntegral (mask24 .&. (x::Int32)) :: Float)-           /  fromIntegral twoto24, rng')-         -- Note, encodeFloat is another option, but I'm not seeing slightly-         --  worse performance with the following [2011.06.25]:---         (encodeFloat rand (-24), rng')-   where-     mask24 = twoto24 - 1-     twoto24 = (2::Int32) ^ (24::Int32)---- CFloat/CDouble are basically the same as a Float/Double:-instance Random CFloat where-  randomR = randomRFloating-  random rng = case random rng of-                 (x,rng') -> (realToFrac (x::Float), rng')--instance Random CDouble where-  randomR = randomRFloating-  -- A MYSTERY:-  -- Presently, this is showing better performance than the Double instance:-  -- (And yet, if the Double instance uses randomFrac then its performance is much worse!)-  random  = randomFrac-  -- random rng = case random rng of-  --             (x,rng') -> (realToFrac (x::Double), rng')--mkStdRNG :: Integer -> IO StdGen-mkStdRNG o = do-    ct          <- getCPUTime-    (sec, psec) <- getTime-    return (createStdGen (sec * 12345 + psec + ct + o))--randomBounded :: (RandomGen g, Random a, Bounded a) => g -> (a, g)-randomBounded = randomR (minBound, maxBound)---- The two integer functions below take an [inclusive,inclusive] range.-randomIvalIntegral :: (RandomGen g, Integral a) => (a, a) -> g -> (a, g)-randomIvalIntegral (l,h) = randomIvalInteger (toInteger l, toInteger h)--{-# SPECIALIZE randomIvalInteger :: (Num a) =>-    (Integer, Integer) -> StdGen -> (a, StdGen) #-}--randomIvalInteger :: (RandomGen g, Num a) => (Integer, Integer) -> g -> (a, g)-randomIvalInteger (l,h) rng- | l > h     = randomIvalInteger (h,l) rng- | otherwise = case (f 1 0 rng) of (v, rng') -> (fromInteger (l + v `mod` k), rng')-     where-       (genlo, genhi) = genRange rng-       b = fromIntegral genhi - fromIntegral genlo + 1--       -- Probabilities of the most likely and least likely result-       -- will differ at most by a factor of (1 +- 1/q).  Assuming the RandomGen-       -- is uniform, of course--       -- On average, log q / log b more random values will be generated-       -- than the minimum-       q = 1000-       k = h - l + 1-       magtgt = k * q--       -- generate random values until we exceed the target magnitude-       f mag v g | mag >= magtgt = (v, g)-                 | otherwise = v' `seq`f (mag*b) v' g' where-                        (x,g') = next g-                        v' = (v * b + (fromIntegral x - fromIntegral genlo))----- The continuous functions on the other hand take an [inclusive,exclusive) range.-randomFrac :: (RandomGen g, Fractional a) => g -> (a, g)-randomFrac = randomIvalDouble (0::Double,1) realToFrac--randomIvalDouble :: (RandomGen g, Fractional a) => (Double, Double) -> (Double -> a) -> g -> (a, g)-randomIvalDouble (l,h) fromDouble rng-  | l > h     = randomIvalDouble (h,l) fromDouble rng-  | otherwise =-       case (randomIvalInteger (toInteger (minBound::Int32), toInteger (maxBound::Int32)) rng) of-         (x, rng') ->-            let-             scaled_x =-                fromDouble (0.5*l + 0.5*h) +                   -- previously (l+h)/2, overflowed-                fromDouble ((0.5*h - 0.5*l) / (0.5 * realToFrac int32Count)) *  -- avoid overflow-                fromIntegral (x::Int32)-            in-            (scaled_x, rng')--int32Count :: Integer-int32Count = toInteger (maxBound::Int32) - toInteger (minBound::Int32) + 1  -- GHC ticket #3982--stdRange :: (Int,Int)-stdRange = (1, 2147483562)--stdNext :: StdGen -> (Int, StdGen)--- Returns values in the range stdRange-stdNext (StdGen s1 s2) = (fromIntegral z', StdGen s1'' s2'')-        where   z'   = if z < 1 then z + 2147483562 else z-                z    = s1'' - s2''--                k    = s1 `quot` 53668-                s1'  = 40014 * (s1 - k * 53668) - k * 12211-                s1'' = if s1' < 0 then s1' + 2147483563 else s1'--                k'   = s2 `quot` 52774-                s2'  = 40692 * (s2 - k' * 52774) - k' * 3791-                s2'' = if s2' < 0 then s2' + 2147483399 else s2'--stdSplit            :: StdGen -> (StdGen, StdGen)-stdSplit std@(StdGen s1 s2)-                     = (left, right)-                       where-                        -- no statistical foundation for this!-                        left    = StdGen new_s1 t2-                        right   = StdGen t1 new_s2--                        new_s1 | s1 == 2147483562 = 1-                               | otherwise        = s1 + 1--                        new_s2 | s2 == 1          = 2147483398-                               | otherwise        = s2 - 1--                        StdGen t1 t2 = snd (next std)---- The global random number generator--{- $globalrng #globalrng#--There is a single, implicit, global random number generator of type-'StdGen', held in some global variable maintained by the 'IO' monad. It is-initialised automatically in some system-dependent fashion, for example, by-using the time of day, or Linux's kernel random number generator. To get-deterministic behaviour, use 'setStdGen'.--}---- |Sets the global random number generator.-setStdGen :: StdGen -> IO ()-setStdGen sgen = writeIORef theStdGen sgen---- |Gets the global random number generator.-getStdGen :: IO StdGen-getStdGen  = readIORef theStdGen--theStdGen :: IORef StdGen-theStdGen  = unsafePerformIO $ do-   rng <- mkStdRNG 0-   newIORef rng---- |Applies 'split' to the current global random generator,--- updates it with one of the results, and returns the other.-newStdGen :: IO StdGen-newStdGen = atomicModifyIORef' theStdGen split--{- |Uses the supplied function to get a value from the current global-random generator, and updates the global generator with the new generator-returned by the function. For example, @rollDice@ gets a random integer-between 1 and 6:-->  rollDice :: IO Int->  rollDice = getStdRandom (randomR (1,6))---}--getStdRandom :: (StdGen -> (a,StdGen)) -> IO a-getStdRandom f = atomicModifyIORef' theStdGen (swap . f)-  where swap (v,g) = (g,v)--{- $references--1. FW #Burton# Burton and RL Page, /Distributed random number generation/,-Journal of Functional Programming, 2(2):203-212, April 1992.--2. SK #Park# Park, and KW Miller, /Random number generators --good ones are hard to find/, Comm ACM 31(10), Oct 1988, pp1192-1201.--3. DG #Carta# Carta, /Two fast implementations of the minimal standard-random number generator/, Comm ACM, 33(1), Jan 1990, pp87-88.--4. P #Hellekalek# Hellekalek, /Don\'t trust parallel Monte Carlo/,-Department of Mathematics, University of Salzburg,-<http://random.mat.sbg.ac.at/~peter/pads98.ps>, 1998.--5. Pierre #LEcuyer# L'Ecuyer, /Efficient and portable combined random-number generators/, Comm ACM, 31(6), Jun 1988, pp742-749.--The Web site <http://random.mat.sbg.ac.at/> is a great source of information.---}
− tests/examples/ghc8/RenamingStar.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE TypeInType #-}--module RenamingStar where--data Foo :: *
− tests/examples/ghc8/RepArrow.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}--module RepArrow where--import Data.Ord ( Down )  -- convenient "Id" newtype, without its constructor-import Data.Coerce--foo :: Coercible (Down (Int -> Int)) (Int -> Int) => Down (Int -> Int) -> Int -> Int-foo = coerce
− tests/examples/ghc8/Roles12a.hs
@@ -1,2 +0,0 @@-module Roles12a where-import {-# SOURCE #-} Roles12
− tests/examples/ghc8/RuleDefiningPlugin.hs
@@ -1,8 +0,0 @@-module RuleDefiningPlugin where--import GhcPlugins--{-# RULES "unsound" forall x. show x = "SHOWED" #-}--plugin :: Plugin-plugin = defaultPlugin
− tests/examples/ghc8/RulePragma.hs
@@ -1,7 +0,0 @@-module Data.Text.Internal.Fusion.Common where--{-#-  RULES "STREAM map/map fusion" forall f g s.-     map f (map g s) = map (\x -> f (g x)) s- #-}-
− tests/examples/ghc8/SH_Overlap1.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE Trustworthy #-}-{-# LANGUAGE FlexibleInstances #-}---- | Compilation should fail as we have overlapping instances that don't obey--- our heuristics.-module SH_Overlap1 where--import safe SH_Overlap1_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap10.hs
@@ -1,17 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as `SH_Overlap6`, but now we are inferring safety. Safe since--- overlapped instance declares itself overlappable.-module SH_Overlap10 where--import SH_Overlap10_A--instance-  {-# OVERLAPS #-}-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap10_A.hs
@@ -1,13 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap10_A (-    C(..)-  ) where--import SH_Overlap10_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap10_B.hs
@@ -1,8 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-module SH_Overlap10_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap11.hs
@@ -1,18 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as `SH_Overlap6`, but now we are inferring safety. Should be inferred--- unsafe due to overlapping instances at call site `f`.------ Testing that we are given correct reason.-module SH_Overlap11 where--import SH_Overlap11_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap11_A.hs
@@ -1,13 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap11_A (-    C(..)-  ) where--import SH_Overlap11_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap11_B.hs
@@ -1,8 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-module SH_Overlap11_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap1_A.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap1_A (-    C(..)-  ) where--import SH_Overlap1_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap1_B.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE Safe #-}-module SH_Overlap1_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap2.hs
@@ -1,19 +0,0 @@-{-# LANGUAGE Trustworthy #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as SH_Overlap1, but SH_Overlap2_A is not imported as 'safe'.------ Question: Should the OI-check be enforced? Y, see reasoning in--- `SH_Overlap4.hs` for why the Safe Haskell overlapping instance check should--- be tied to Safe Haskell mode only, and not to safe imports.-module SH_Overlap2 where--import SH_Overlap2_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap2_A.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap2_A (-    C(..)-  ) where--import SH_Overlap2_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap2_B.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE Safe #-}-module SH_Overlap2_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap3.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE Unsafe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as SH_Overlap1, but module where overlap occurs (SH_Overlap3) is--- marked `Unsafe`. Compilation should succeed (symetry with inferring safety).-module SH_Overlap3 where--import SH_Overlap3_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap3_A.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap3_A (-    C(..)-  ) where--import SH_Overlap3_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap3_B.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE Safe #-}-module SH_Overlap3_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap4.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE Unsafe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as SH_Overlap3, however, SH_Overlap4_A is imported as `safe`.------ Question: Should compilation now fail? N. At first it seems a nice idea to--- tie the overlap check to safe imports. However, instances are a global--- entity and can be imported by multiple import paths. How should safe imports--- interact with this? Especially when considering transitive situations...------ Simplest is to just enforce the overlap check in Safe and Trustworthy--- modules, but not in Unsafe ones.-module SH_Overlap4 where--import safe SH_Overlap4_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap4_A.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap4_A (-    C(..)-  ) where--import SH_Overlap4_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap4_B.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE Safe #-}-module SH_Overlap4_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap5.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Compilation should fail as we have overlapping instances that don't obey--- our heuristics.-module SH_Overlap5 where--import safe SH_Overlap5_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap5_A.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap5_A (-    C(..)-  ) where--import SH_Overlap5_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap5_B.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE Safe #-}-module SH_Overlap5_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap6.hs
@@ -1,15 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as `SH_Overlap5` but dependencies are now inferred-safe, not--- explicitly marked. Compilation should still fail.-module SH_Overlap6 where--import safe SH_Overlap6_A--instance C [a] where-  f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap6_A.hs
@@ -1,13 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap6_A (-    C(..)-  ) where--import SH_Overlap6_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap6_B.hs
@@ -1,8 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-module SH_Overlap6_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap7.hs
@@ -1,15 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as `SH_Overlap6`, but now we are inferring safety. Should be inferred--- unsafe due to overlapping instances at call site `f`.-module SH_Overlap7 where--import SH_Overlap7_A--instance C [a] where-  f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap7_A.hs
@@ -1,14 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE Safe #-}-module SH_Overlap7_A (-    C(..)-  ) where--import SH_Overlap7_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap7_B.hs
@@ -1,9 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE Safe #-}-module SH_Overlap7_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SH_Overlap8.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Overlapping instances, but with a single parameter type-class and no--- orphans. So `SH_Overlap8` decided to explictly depend on `SH_Overlap8_A`--- since that's where the type-class `C` with function `f` is defined.------ Question: Safe or Unsafe? Safe-module SH_Overlap8 where--import safe SH_Overlap8_A--instance C [a] where-  f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap8_A.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE Safe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap8_A (-    C(..)-  ) where--class C a where-  f :: a -> String--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap9.hs
@@ -1,16 +0,0 @@-{-# OPTIONS_GHC -fwarn-safe #-}-{-# LANGUAGE FlexibleInstances #-}---- | Same as `SH_Overlap6`, but now we are inferring safety. Should be inferred--- unsafe due to overlapping instances at call site `f`.-module SH_Overlap9 where--import SH_Overlap9_A--instance-  C [a] where-    f _ = "[a]"--test :: String-test = f ([1,2,3,4] :: [Int])-
− tests/examples/ghc8/SH_Overlap9_A.hs
@@ -1,13 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-{-# LANGUAGE FlexibleInstances #-}-module SH_Overlap9_A (-    C(..)-  ) where--import SH_Overlap9_B--instance-  {-# OVERLAPS #-}-  C [Int] where-    f _ = "[Int]"-
− tests/examples/ghc8/SH_Overlap9_B.hs
@@ -1,8 +0,0 @@-{-# OPTIONS_GHC -fwarn-unsafe #-}-module SH_Overlap9_B (-    C(..)-  ) where--class C a where-  f :: a -> String-
− tests/examples/ghc8/SayAnnNames.hs
@@ -1,34 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-module SayAnnNames (plugin, SomeAnn(..)) where-import GhcPlugins-import Control.Monad (unless)-import Data.Data--data SomeAnn = SomeAnn deriving (Data, Typeable)--plugin :: Plugin-plugin = defaultPlugin {-  installCoreToDos = install-  }--install :: [CommandLineOption] -> [CoreToDo] -> CoreM [CoreToDo]-install _ todo = do-  reinitializeGlobals-  return (CoreDoPluginPass "Say name" pass : todo)--pass :: ModGuts -> CoreM ModGuts-pass g = do-          dflags <- getDynFlags-          mapM_ (printAnn dflags g) (mg_binds g) >> return g-  where printAnn :: DynFlags -> ModGuts -> CoreBind -> CoreM CoreBind-        printAnn dflags guts bndr@(NonRec b _) = do-          anns <- annotationsOn guts b :: CoreM [SomeAnn]-          unless (null anns) $ putMsgS $-            "Annotated binding found: " ++  showSDoc dflags (ppr b)-          return bndr-        printAnn _ _ bndr = return bndr--annotationsOn :: Data a => ModGuts -> CoreBndr -> CoreM [a]-annotationsOn guts bndr = do-  anns <- getAnnotations deserializeWithData guts-  return $ lookupWithDefaultUFM anns [] (varUnique bndr)
− tests/examples/ghc8/SelfDep.hs
@@ -1,3 +0,0 @@-module SelfDep where--data T :: T -> *
− tests/examples/ghc8/SemigroupWarnings.hs
@@ -1,34 +0,0 @@--- Test purpose:--- Ensure that missing semigroup warnings are issued--- correctly if the warning flag is enabled--{-# OPTIONS_GHC -fwarn-semigroup #-}--module SemigroupWarnings where----import Data.Semigroup------ Bad instance, should complain about missing Semigroup parent-data LacksSemigroup-instance Monoid LacksSemigroup where-    mempty = undefined-    mappend = undefined------ Correct instance, should not warn-data HasSemigroup-instance Semigroup HasSemigroup where-    (<>) = undefined-instance Monoid HasSemigroup where-    mempty = undefined-    mappend = undefined------ Should issue a Prelude clash warning-(<>) = undefined
− tests/examples/ghc8/Setup.hs
@@ -1,3 +0,0 @@-import Distribution.Simple--main = defaultMain
− tests/examples/ghc8/ShouldFail.hs
@@ -1,1 +0,0 @@-import Set
− tests/examples/ghc8/SigTvKinds.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE PolyKinds #-}--module SigTvKinds where--data T (a :: k1) x = MkT (S a ())-data S (b :: k2) y = MkS (T b ())-  -- tests TcTyClsDecls.no_sig_tv
− tests/examples/ghc8/SigTvKinds2.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE PolyKinds #-}--module SigTvKinds2 where--data SameKind :: k -> k -> *--data Q (a :: k1) (b :: k2) c = MkQ (SameKind a b)
− tests/examples/ghc8/SpecializePhaseControl.hs
@@ -1,15 +0,0 @@-{-# SPECIALISE [1] x ::-        Integer -> Integer -> Integer,-        Integer -> Int -> Integer,-        Int -> Int -> Int #-}-{-# INLINABLE [1] x #-}-x :: (Num a, Integral b) => a -> b -> a-x = undefined--{-# SPECIALISE INLINE [999] y ::-        Integer -> Integer -> Integer,-        Integer -> Int -> Integer,-        Int -> Int -> Int #-}-{-# INLINABLE [1] y #-}-y :: (Num a, Integral b) => a -> b -> a-y = undefined
− tests/examples/ghc8/Splices.hs
@@ -1,30 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE NamedWildCards #-}-module Splices where--import Language.Haskell.TH-import Language.Haskell.TH.Lib (wildCardT)--metaType1 :: TypeQ-metaType1 = wildCardT--metaType2 :: TypeQ-metaType2 = [t| _ |]--metaType3 :: TypeQ-metaType3 = [t| _ -> _ -> _ |]--metaDec1 :: Q [Dec]-metaDec1 = [d| foo :: _ => _-               foo x y = x == y |]--metaDec2 :: Q [Dec]-metaDec2 = [d| bar :: _a -> _b -> (_a, _b)-               bar x y = (not x, y) |]---- An expression with a partial type annotation-metaExp1 :: ExpQ-metaExp1 = [| Just True :: Maybe _ |]--metaExp2 :: ExpQ-metaExp2 = [| id :: _a -> _a |]
− tests/examples/ghc8/SplicesUsed.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE PartialTypeSignatures #-}-module SplicesUsed where--import Splices--maybeBool :: $(metaType1)-maybeBool = $(metaExp2) $(metaExp1)--charA :: a -> $(metaType2)-charA x = ('x', x)--filter' :: $(metaType3)-filter' = filter--$(metaDec1)--$(metaDec2)
− tests/examples/ghc8/StackOverflow.hs
@@ -1,4 +0,0 @@-main :: IO ()-main = main' ()-  where-    main' _ = main >> main' ()
− tests/examples/ghc8/Structure8.hs
@@ -1,1 +0,0 @@-foo x | otherwise = y
− tests/examples/ghc8/Structure8a.hs
@@ -1,1 +0,0 @@-foo x = y
− tests/examples/ghc8/T10009.hs
@@ -1,150 +0,0 @@-{-# LANGUAGE TypeFamilies, ScopedTypeVariables #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}-module T10009 where---type family F a-type family UnF a--f :: (UnF (F b) ~ b) => F b -> ()-f = error "urk"--g :: forall a. (UnF (F a) ~ a) => a -> ()-g _ = f (undefined :: F a)---{- ----------------[G] UnF (F b) ~ b--[W] UnF (F beta) ~ beta-[W] F a ~ F beta----------------------[G] g1: F a ~ fsk1         fsk1 := F a-[G] g2: UnF fsk1 ~ fsk2    fsk2 := UnF fsk1-[G] g3: fsk2 ~ a--[W] w1: F beta ~ fmv1-[W] w2: UnF fmv1 ~ fmv2-[W] w3: fmv2 ~ beta-[W] w5: fsk1 ~ fmv1   -- From F a ~ F beta-                      -- using flat-cache------ No progress in solving -------- Unflatten:--[W] w3: UnF (F beta) ~ beta-[W] w5: fsk1 ~ F beta----- Improvement--[D] F beta ~ fmv1-[D] UnF fmv1 ~ fmv2    -- (A)-[D] fmv2 ~ beta-[D] fmv1 ~ fsk1        -- (B) From F a ~ F beta-                       -- NB: put fmv on left----> rewrite (A) with (B), and match with g2--[D] F beta ~ fmv1-[D] fmv2 ~ fsk2        -- (C)-[D] fmv2 ~ beta        -- (D)-[D] fmv1 ~ fsk1----> rewrite (D) with (C) and re-orient--[D] F beta ~ fmv1-[D] fmv2 ~ fsk2-[D] beta ~ fsk2       -- (E)-[D] fmv1 ~ fsk1---- Now we can unify beta!--}----{---------Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy--wl: [W] F b_amr ~ F b_amt--work item: [W] UnF (F b_amt) ~ b_amt-  b_amt is the unification variable--===>      b_amt := s_amF--Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy--wl: [W] F b_amr ~ F b_amt-    [W] UnF s_amD ~ s_amF--work item: [W] F b_amt ~ s_amD---===>-wl: [W] F b_amr ~ F b_amt-    [W] UnF s_amD ~ s_amF--Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy-       [W] F s_amF ~ s_amD--===>-wl: [W] F b_amr ~ F b_amt--Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy-       [W] F s_amF ~ s_amD-       [W] UnF s_amD ~ s_amF--===>-Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy-       [W] UnF s_amD ~ s_amF-       [W] F s_amF ~ s_amD--wl:--work-item: [W] F b_amr ~ F b_amt---> fsk_amy ~ s_amD---> s_amD ~ fsk_amy--===>-Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy-       [W] UnF s_amD ~ s_amF-       [W] F s_amF ~ s_amD-       [W] s_amD ~ fsk_amy--wl:--work item: [D] UnF s_amD ~ s_amF----> [D] UnF fsk_amy ~ s_amF---> [D] s_amF ~ fsk_amA--===>-Inert: [G] fsk_amA ~ b_amr-       [G] UnF fsk_amy ~ fsk_amA-       [G} F b_amr ~ fsk_amy-       [W] UnF s_amD ~ s_amF-       [W] F s_amF ~ s_amD-       [W] s_amD ~ fsk_amy-       [D] s_amF ~ fsk_amA--wl:--work item: [D] F s_amF ~ s_amD---> F fsk_amA ~ s_amD---> s_amd ~ b_amr--}
− tests/examples/ghc8/T10030.hs
@@ -1,7 +0,0 @@-module Main where--import GHC.Generics--main = do-  putStrLn $ packageName $ from $ Just True-  putStrLn $ packageName $ from $ True
− tests/examples/ghc8/T10041.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE PolyKinds, TypeFamilies, DataKinds #-}-{-# LANGUAGE TypeOperators, GADTs, InstanceSigs #-}--module T10041 where--data family Sing (a :: k)-data instance Sing (xs :: [k]) where-  SNil :: Sing '[]--class SingI (a :: ĸ) where
− tests/examples/ghc8/T10045.hs
@@ -1,8 +0,0 @@-module T10045 where--newtype Meta = Meta ()--foo (Meta ws1) =-     let copy :: _-         copy w from = copy w True-     in copy ws1 False
− tests/examples/ghc8/T10047.hs
@@ -1,7 +0,0 @@-{-# OPTIONS_GHC -fno-warn-missing-fields #-}-module T10047 where--import Language.Haskell.TH-import Language.Haskell.TH.Quote--n = QuasiQuoter { quoteExp = dyn }
− tests/examples/ghc8/T10052-input.hs
@@ -1,1 +0,0 @@-main = let (x :: String) = "hello" in putStrLn x
− tests/examples/ghc8/T10052.hs
@@ -1,30 +0,0 @@-{-# LANGUAGE RecordWildCards #-}-{-# OPTIONS_GHC -Wall #-}-module Main where--import System.Environment-import GHC--main :: IO ()-main = do-    flags <- getArgs-    runGhc' flags $ do-      setTargets [Target (TargetFile "T10052-input.hs" Nothing) True Nothing]-      _success <- load LoadAllTargets-      return ()--runGhc' :: [String] -> Ghc a -> IO a-runGhc' args act = do-    let libdir = head args-        flags  = tail args-    (dynFlags, _warns) <- parseStaticFlags (map noLoc flags)-    runGhc (Just libdir) $ do-      dflags0 <- getSessionDynFlags-      (dflags1, _leftover, _warns) <- parseDynamicFlags dflags0 dynFlags-      let dflags2 = dflags1 {-              hscTarget = HscInterpreted-            , ghcLink   = LinkInMemory-            , verbosity = 1-            }-      _newPkgs <- setSessionDynFlags dflags2-      act
− tests/examples/ghc8/T10083.hs
@@ -1,5 +0,0 @@-module T10083 where-  import T10083a-  data RSR = MkRSR SR-  eqRSR (MkRSR s1) (MkRSR s2) = (eqSR s1 s2)-  foo x y = not (eqRSR x y)
− tests/examples/ghc8/T10083a.hs
@@ -1,4 +0,0 @@-module T10083a where-  import {-# SOURCE #-} T10083-  data SR = MkSR RSR-  eqSR (MkSR r1) (MkSR r2) = eqRSR r1 r2
− tests/examples/ghc8/T10100.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses  #-}-{-# LANGUAGE FunctionalDependencies #-}-{-# LANGUAGE FlexibleInstances      #-}-{-# LANGUAGE UndecidableInstances   #-}--module T10100 where--data Zero-data Succ a--class Add a b ab | a b -> ab, a ab -> b-instance Add Zero b b-instance (Add a b ab) => Add (Succ a) b (Succ ab)
− tests/examples/ghc8/T10104.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE MagicHash #-}-module Main where--import GHC.Prim--data P = Positives Int# Float# Double# Char# Word# deriving Show-data N = Negatives Int# Float# Double# deriving Show--main = do-  print $ Positives 42# 4.23# 4.23## '4'# 4##-  print $ Negatives -4# -4.0# -4.0##
− tests/examples/ghc8/T10109.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE PolyKinds, MultiParamTypeClasses, FunctionalDependencies,-             UndecidableInstances, FlexibleInstances #-}--module T10109 where--data Succ a--class Add (a :: k1) (b :: k2) (ab :: k3) | a b -> ab-instance (Add a b ab) => Add (Succ a) b (Succ ab)-
− tests/examples/ghc8/T10110A.hs
@@ -1,4 +0,0 @@-module T10110A (a) where-{-# NOINLINE a #-}-a :: Int-a = 3
− tests/examples/ghc8/T10110B.hs
@@ -1,3 +0,0 @@-module T10110B (b) where-b :: Int-b = 5
− tests/examples/ghc8/T10110C.hs
@@ -1,5 +0,0 @@-module T10110C (c) where-import T10110A (a)-import T10110B (b)-c :: Int-c = a+b
− tests/examples/ghc8/T10112.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE RankNTypes, RebindableSyntax #-}-module T10112 where--import qualified Prelude as P--(>>=) :: a -> ((forall b . b) -> c) -> c-a >>= f = f P.undefined-return a = a-fail s = P.undefined--t1 = 'd' >>= (\_ -> 'k')--t2 = do { _ <- 'd'-        ; 'k' }--foo = P.putStrLn [t1, t2]
− tests/examples/ghc8/T10134.hs
@@ -1,19 +0,0 @@-{-# LANGUAGE DataKinds, TypeOperators, ConstraintKinds, TypeFamilies, NoMonoLocalBinds, NoMonomorphismRestriction #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}--module T10134 where--import GHC.TypeLits-import T10134a-import Prelude--type Positive n = ((n-1)+1)~n--data Dummy n d = Dummy { vec :: Vec n (Vec d Bool) }--nextDummy :: Positive (2*(n+d)) => Dummy n d -> Dummy n d-nextDummy d = Dummy { vec = vec dFst }-   where (dFst,dSnd) = nextDummy' d--nextDummy' :: Positive (2*(n+d)) => Dummy n d -> ( Dummy n d, Bool )-nextDummy' _ = undefined
− tests/examples/ghc8/T10134a.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeOperators #-}-module T10134a where--import GHC.TypeLits--data Vec :: Nat -> * -> * where-  Nil  :: Vec 0 a-  (:>) :: a -> Vec n a -> Vec (n + 1) a
− tests/examples/ghc8/T10139.hs
@@ -1,39 +0,0 @@-{-# LANGUAGE TypeFamilies, FlexibleInstances, FlexibleContexts, UndecidableInstances,-             MultiParamTypeClasses, FunctionalDependencies #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}--module T10139 where--import GHC.Exts-import Data.Monoid--class Monoid v => Measured v a | a -> v where-  _measure :: v -> a-data FingerTree v a = Dummy v a-singleton :: Measured v a => a -> FingerTree v a-singleton = undefined--class DOps a where-  plus :: a -> D a -> a--type family D a :: *-type instance D (FingerTree (Size Int, v) (Sized a)) = [Diff (Normal a)]--type family Normal a :: *--data Diff a = Add Int a--newtype Sized a = Sized a-newtype Size a = Size a---- This works:-{--instance (Measured (Size Int, v) (Sized a), Coercible (Normal a) (Sized a)) => DOps (FingerTree (Size Int, v) (Sized a)) where-  plus = foldr (\(Add index val) seq -> singleton ((coerce) val))--}---- This hangs:-instance (Measured (Size Int, v) (Sized a), Coercible (Normal a) (Sized a)) => DOps (FingerTree (Size Int, v) (Sized a)) where-  plus = foldr (flip f)-    where f _seq x = case x of-            Add _index val -> singleton ((coerce) val)
− tests/examples/ghc8/T10141.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE TypeFamilies, PolyKinds #-}--module T10141 where--type family G (a :: k) where-   G Int  = Bool-   G Bool = Int-   G a    = a
− tests/examples/ghc8/T10148.hs
@@ -1,28 +0,0 @@-{-# LANGUAGE BangPatterns #-}-module Main where--import Debug.Trace--data Machine = Machine (Int -> Machine) Int--main :: IO ()-main = (go 7 $ Machine (gstep (Array 99)) 8) `seq` return ()-  where-    go :: Int -> Machine -> Int-    go 0 (Machine _ done) = done-    go nq (Machine step _) = go (nq-1) $ step 0--gstep :: Array Int -> Int -> Machine-gstep m x = Machine (gstep m') (mindexA m)-  where-    !m' = adjustA x m--data Array a = Array a--adjustA :: (Show a) => Int ->  Array a -> Array a-adjustA i (Array t)-  | i < 0 = undefined i -- not just undefined!-  | otherwise = Array $ trace ("adj " ++ show t) $ t--mindexA :: Array a -> a-mindexA (Array v) = v
− tests/examples/ghc8/T10156.hs
@@ -1,15 +0,0 @@-{-# LANGUAGE FlexibleContexts, TypeFamilies #-}--module T10156 where--import Data.Coerce--data Iso a b = Iso (a -> b) (b -> a)--coerceIso :: Coercible a b => Iso a b-coerceIso = Iso coerce coerce--type family F x--f :: (Coercible a (F b), Coercible c (F b)) => a -> b -> c-f x _ = coerce x
− tests/examples/ghc8/T10180.hs
@@ -1,27 +0,0 @@-{-# LANGUAGE TypeOperators, TypeFamilies, GADTs, EmptyCase #-}-module T10180 where--newtype Foo = Foo Int--type family Bar a-type instance Bar Int = Int--type family Baz a where-  Baz Int = Int-  Baz Char = Int--data a :~: b where-  Refl :: a :~: a--absurd0 :: Int :~: Bool -> a-absurd0 x = case x of {}--absurd1 :: Foo :~: Bool -> a-absurd1 x = case x of {}--absurd2 :: Bar Int :~: Bool -> a-absurd2 x = case x of {}--absurd3 :: Baz a :~: Bool -> a-absurd3 x = case x of {}-
− tests/examples/ghc8/T10181.hs
@@ -1,3 +0,0 @@-module T10181 where--t a = t a
− tests/examples/ghc8/T10182.hs
@@ -1,4 +0,0 @@-module T10182 where-import T10182a-instance Show (a -> b) where-    show _  = ""
− tests/examples/ghc8/T10182a.hs
@@ -1,2 +0,0 @@-module T10182a where-import {-# SOURCE #-} T10182
− tests/examples/ghc8/T10184.hs
@@ -1,9 +0,0 @@-module T10184 where--import Data.Coerce--newtype Bar a = Bar (Either a (Bar a))-newtype Age = MkAge Int--x :: Bar Age-x = coerce (Bar (Left (5 :: Int)))
− tests/examples/ghc8/T10185.hs
@@ -1,7 +0,0 @@-module T10185 where--import Data.Coerce-import Data.Proxy--foo :: (Coercible (a b) (c d), Coercible (c d) (e f)) => Proxy (c d) -> a b -> e f-foo _ = coerce
− tests/examples/ghc8/T10188.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE DataKinds, PolyKinds, TypeOperators, TypeFamilies #-}--module T10188 where--data Peano = Zero | Succ Peano--type family Length (as :: [k]) :: Peano where-  Length (a : as) = Succ (Length as)-  Length '[]      = Zero--type family Length' (as :: [k]) :: Peano where-  Length' ((:) a as) = Succ (Length' as)-  Length' '[]        = Zero
− tests/examples/ghc8/T10194.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE RankNTypes #-}-module T10194 where--type X = forall a . a--comp :: (X -> c) -> (a -> X) -> (a -> c)-comp = (.)
− tests/examples/ghc8/T10195.hs
@@ -1,31 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses, TypeFamilies, GADTs,-             ConstraintKinds, DataKinds, KindSignatures,-             FlexibleInstances #-}-{-# OPTIONS -fno-warn-redundant-constraints #-}--module T10195 where--import GHC.Exts--data Foo m zp r'q = Foo zp-data Dict :: Constraint -> * where-  Dict :: a => Dict a--type family BarFamily a b :: Bool-class Bar m m'-instance (BarFamily m m' ~ 'True) => Bar m m'--magic :: (Bar m m') => c m zp -> Foo m zp (c m' zq)-magic = undefined--getDict :: a -> Dict (Num a)-getDict _ = undefined-fromScalar :: r -> c m r-fromScalar = undefined--foo :: (Bar m m')-  => c m zp -> Foo m zp (c m' zq) -> Foo m zp (c m' zq)-foo b (Foo sc) =-  let scinv = fromScalar sc-  in case getDict scinv of-    Dict -> magic $ scinv * b
− tests/examples/ghc8/T10196.hs
@@ -1,13 +0,0 @@-module T10196 where--data X = Xᵦ | Xᵤ | Xᵩ | Xᵢ | Xᵪ | Xᵣ--f :: Int-f =-  let xᵦ = 1-      xᵤ = xᵦ-      xᵩ = xᵤ-      xᵢ = xᵩ-      xᵪ = xᵢ-      xᵣ = xᵪ-  in xᵣ
− tests/examples/ghc8/T10215.hs
@@ -1,9 +0,0 @@-testF :: Float -> Bool-testF x = x == 0 && not (isNegativeZero x)--testD :: Double -> Bool-testD x = x == 0 && not (isNegativeZero x)--main :: IO ()-main = do print $ testF (-0.0)-          print $ testD (-0.0)
− tests/examples/ghc8/T10218.hs
@@ -1,18 +0,0 @@-{-# OPTIONS_GHC -feager-blackholing #-}--module Main where--{-# NOINLINE foo #-}-foo :: Bool -> Int -> Int -> Int-foo True  _ x = 1-foo False _ x = x+1--{-# NOINLINE bar #-}-bar :: Int -> (Int,Int)-bar x = let y1 = x * 2-            y2 = x * 2-        in (foo False y1 y2,foo False y2 y1)--main = print (fst p + snd p)-  where-    p = bar 3
− tests/examples/ghc8/T10220B.hs
@@ -1,1 +0,0 @@-module T10220B where
− tests/examples/ghc8/T10226.hs
@@ -1,59 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE AllowAmbiguousTypes #-} -- only necessary in 7.10-{-# LANGUAGE FlexibleContexts #-}    -- necessary for showFromF' example-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}--module T10226 where--type family F    a-type family FInv a---- This definition is accepted in 7.8 without anything extra, but requires--- AllowAmbiguousTypes in 7.10 (this, by itself, is not a problem):-showFromF :: (Show a, FInv (F a) ~ a) => F a -> String-showFromF fa = undefined---- Consider what happens when we attempt to call `showFromF` at some type b.--- In order to check that this is valid, we have to find an a such that------ > b ~ F a /\ Show a /\ FInv (F a) ~ a------ Introducing an intermediate variable `x` for the result of `F a` gives us------ > b ~ F a /\ Show a /\ FInv x ~ a /\ F a ~ x------ Simplifying------ > b ~ x /\ Show a /\ FInv x ~ a /\ F a ~ x------ Set x := b------ > Show a /\ FInv b ~ a /\ F a ~ b------ Set a := FInv b------ > Show (FInv b) /\ FInv b ~ FInv b /\ F (FInv b) ~ b------ Simplifying------ > Show (FInv b) /\ F (FInv b) ~ b------ Indeed, we can give this definition in 7.8, but not in 7.10:-showFromF' :: (Show (FInv b), F (FInv b) ~ b) => b -> String-showFromF' = showFromF--{--------------------------------------------------------------------------------  In 7.10 the definition of showFromF' is not accepted, but it gets stranger.-  In 7.10 we cannot _call_ showFromF at all, even at a concrete type. Below-  we try to call it at type b ~ Int. It would need to show--  > Show (FInv Int) /\ F (FInt Int) ~ Int--  all of which should easily get resolved, but somehow don't.--------------------------------------------------------------------------------}--type instance F    Int = Int-type instance FInv Int = Int--test :: String-test = showFromF (0 :: Int)
− tests/examples/ghc8/T10233.hs
@@ -1,2 +0,0 @@-module T10233 where-import T10233a( Constraint, Int )
− tests/examples/ghc8/T10233a.hs
@@ -1,3 +0,0 @@-module T10233a ( module GHC.Exts ) where-import GHC.Exts ( Constraint, Int )-
− tests/examples/ghc8/T10245.hs
@@ -1,13 +0,0 @@-f :: Int -> String-f n = case n of-  0x8000000000000000 -> "yes"-  _ -> "no"-{-# NOINLINE f #-}--main = do-    let string = "0x8000000000000000"-    let i = read string :: Integer-    let i' = fromIntegral i :: Int-    print i-    print i'-    print (f i')
− tests/examples/ghc8/T10246.hs
@@ -1,32 +0,0 @@-f1 :: Int -> String-f1 n = case n of-  0 -> "bar"-  0x10000000000000000 -> "foo"-  _ -> "c"-{-# NOINLINE f1 #-}--g1 :: Int -> String-g1 n = if n == 0 then "bar" else-       if n == 0x10000000000000000 then  "foo" else-       "c"-{-# NOINLINE g1 #-}--f2 :: Int -> String-f2 n = case n of-  0x10000000000000000 -> "foo"-  0 -> "bar"-  _ -> "c"-{-# NOINLINE f2 #-}--g2 :: Int -> String-g2 n = if n == 0x10000000000000000 then  "foo" else-       if n == 0 then "bar" else-       "c"-{-# NOINLINE g2 #-}--main = do-    let i = read "0" :: Int-    print (f1 i)-    print (g1 i)-    print (f2 i)-    print (g2 i)
− tests/examples/ghc8/T10251.hs
@@ -1,41 +0,0 @@-{-# LANGUAGE NoImplicitPrelude #-}-{-# OPTIONS_GHC -O #-}-module T10251 where--data D = D-data E = E--class Storable a where-    poke2 :: a -> E-instance Storable D where-    poke2 = poke2 -- undefined--class Foo a where-instance Foo D where--class (Foo t, Storable t) => FooStorable t where--instance FooStorable D where-    {-# SPECIALIZE instance FooStorable D #-}--{-# SPECIALIZE bug :: D -> E #-}--bug-  :: FooStorable t-  => t-  -> E-bug = poke2-{--sf 9160 # ghc -c -fforce-recomp -Wall B.hs--ghc: panic! (the 'impossible' happened)-  (GHC version 7.10.1 for x86_64-unknown-linux):-        Template variable unbound in rewrite rule-  $fFooStorableD_XU-  [$fFooStorableD_XU]-  [$fFooStorableD_XU]-  []-  []--Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug--}
− tests/examples/ghc8/T10263.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}-module T10263 where--data Maybe a = AF-type role Maybe representational
− tests/examples/ghc8/T10267.hs
@@ -1,33 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}--module T10267 where--import Language.Haskell.TH-import T10267a--[d| i :: a -> a-    i = _foo--    j :: a -> a-    j x = _ |]--$(return [-   SigD (mkName "k")-        (ForallT [PlainTV (mkName "a")]-                 []-                 (AppT (AppT ArrowT (VarT (mkName "a"))) (VarT (mkName "a"))))- , FunD (mkName "k")-        [Clause [] (NormalB (UnboundVarE (mkName "_foo"))) []]- ])--$(return [-   SigD (mkName "l")-        (ForallT [PlainTV (mkName "a")]-                 []-                 (AppT (AppT ArrowT (VarT (mkName "a"))) (VarT (mkName "a"))))- , FunD (mkName "l")-        [Clause [VarP (mkName "x")] (NormalB (UnboundVarE (mkName "_"))) []]- ])--foo :: a -> a-foo x = $varX
− tests/examples/ghc8/T10267a.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}--module T10267a where--import Language.Haskell.TH--varX :: Q Exp-varX = [| x |]
− tests/examples/ghc8/T10279.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module T10279 where-import Language.Haskell.TH-import Language.Haskell.TH.Syntax---- NB: rts-1.0 is used here because it doesn't change.--- You do need to pick the right version number, otherwise the--- error message doesn't recognize it as a source package ID,--- (This is OK,  since it will look obviously wrong when they--- try to find the package in their package database.)-blah = $(conE (Name (mkOccName "Foo") (NameG VarName (mkPkgName "rts-1.0") (mkModName "A"))))
− tests/examples/ghc8/T10283.hs
@@ -1,23 +0,0 @@-{-# OPTIONS_GHC -fdefer-type-errors -fno-warn-deferred-type-errors #-}-{-# LANGUAGE ImpredicativeTypes #-}--module T9834 where-import Control.Applicative-import Data.Functor.Identity--type Nat f g = forall a. f a -> g a--newtype Comp p q a = Comp (p (q a))--liftOuter :: (Functor p, Applicative q) => p a -> (Comp p q) a-liftOuter pa = Comp (pure <$> pa)--runIdComp :: Functor p => Comp p Identity a -> p a-runIdComp (Comp p) = runIdentity <$> p--wrapIdComp :: Applicative p => (forall q. Applicative q => Nat (Comp p q) (Comp p q)) -> p a -> p a-wrapIdComp f = runIdComp . f . liftOuter--class Applicative p => ApplicativeFix p where-  afix :: (forall q. Applicative q => (Comp p q) a -> (Comp p q) a) -> p a-  afix = wrapIdComp
− tests/examples/ghc8/T10284.hs
@@ -1,17 +0,0 @@-{-# OPTIONS_GHC -fdefer-type-errors -fno-warn-deferred-type-errors #-}--import Control.Exception--a :: Int-a = 'a'--main :: IO ()-main = do-  catch (evaluate a)-        (\e -> do let err = show (e :: TypeError)-                  putStrLn ("As expected, TypeError: " ++ err)-                  return "")-  catch (evaluate a)-        (\e -> do let err = show (e :: ErrorCall)-                  putStrLn ("Something went horribly wrong: " ++ err)-                  return "")
− tests/examples/ghc8/T10285.hs
@@ -1,11 +0,0 @@-module T10285 where--import T10285a-import Data.Type.Coercion-import Data.Coerce--oops :: Coercion (N a) (N b) -> a -> b-oops Coercion = coerce--unsafeCoerce :: a -> b-unsafeCoerce = oops coercion
− tests/examples/ghc8/T10285a.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}--module T10285a (N, coercion) where--import Data.Type.Coercion--newtype N a = MkN Int-type role N representational--coercion :: Coercion (N a) (N b)-coercion = Coercion
− tests/examples/ghc8/T10294.hs
@@ -1,7 +0,0 @@-module T10294 where--import SayAnnNames--{-# ANN foo SomeAnn #-}-foo :: ()-foo = ()
− tests/examples/ghc8/T10294a.hs
@@ -1,7 +0,0 @@-module T10294a where--import SayAnnNames-import Data.Data--baz :: Constr-baz = toConstr SomeAnn
− tests/examples/ghc8/T10306.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE TemplateHaskell, TypeFamilies #-}--module T10306 where--import Language.Haskell.TH-import GHC.TypeLits---- Attempting to reify a built-in type family like (+) previously--- caused a crash, because it has no equations-$(do x <- reify ''(+)-     case x of-       FamilyI (ClosedTypeFamilyD _ _ _ _ []) _ -> return []-       _                                        -> error $ show x- )
− tests/examples/ghc8/T10318.hs
@@ -1,35 +0,0 @@-{-# LANGUAGE FlexibleContexts, TypeSynonymInstances,-             FlexibleInstances, TypeFamilies,-             UndecidableSuperClasses #-}--module T10318 where---- | Product of non-zero elements always non-zero.--- Every integral domain has a field of fractions.--- The field of fractions of any field is itself.-class (Frac (Frac a) ~ Frac a, Fractional (Frac a), IntegralDomain (Frac a))-  => IntegralDomain a where-  type Frac a :: *-  embed :: a -> Frac a--instance IntegralDomain Integer where-  type Frac Integer = Rational-  embed = fromInteger--instance IntegralDomain Rational where-  type Frac Rational = Rational-  embed = id--g :: IntegralDomain a => a -> a-g x = g x--h :: a -> Frac a-h x = h x---- This is the test function--f :: IntegralDomain a => a -> Frac a-f x = g (h (h x))-  -- Given: IntegralDomain (Frac a)-  -- Wanted: IntegralDomain (Frac (Frac a))-
− tests/examples/ghc8/T10321.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE DataKinds      #-}-{-# LANGUAGE GADTs          #-}-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE TypeOperators  #-}--module T10321 where--import GHC.TypeLits--data Vec :: Nat -> * -> * where-  Nil  :: Vec 0 a-  (:>) :: a -> Vec n a -> Vec (n + 1) a--infixr 5 :>
− tests/examples/ghc8/T10322A.hs
@@ -1,4 +0,0 @@-module T10322A (a) where-{-# NOINLINE a #-}-a :: Int-a = 3
− tests/examples/ghc8/T10322B.hs
@@ -1,4 +0,0 @@-module T10322B (b) where-import T10322A (a)-b :: Int-b = a+1
− tests/examples/ghc8/T10322C.hs
@@ -1,5 +0,0 @@-module T10322C (c) where-import T10322A (a)-import T10322B (b)-c :: Int-c = a+b
− tests/examples/ghc8/T10335.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, ConstraintKinds #-}--module Foo where--type X a = (Eq a, Show a)--class Eq a => C a b---- HEAD was unable to find the (Eq a) superclass--- for a while in March/April 2015-instance X a => C a [b]-----
− tests/examples/ghc8/T10340.hs
@@ -1,17 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE FlexibleInstances #-}--module T10340 where--import GHC.Exts (Any)--class MonadState s m where-  get :: m s--newtype State s a = State (s -> (s, a))--instance MonadState s (State s) where-  get = State $ \s -> (s, s)--foo :: State Any Any-foo = get
− tests/examples/ghc8/T10348.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE AutoDeriveTypeable, GADTs, DataKinds, KindSignatures, StandaloneDeriving, TypeOperators #-}--module T10348 where--import GHC.TypeLits-import Data.Typeable-import Data.Proxy--data Foo (n :: Nat) where-  Hey :: KnownNat n => Foo n--deriving instance Show (Foo n)--data T t where-  T :: (Show t, Typeable t) => t -> T t--deriving instance Show (T n)--hey :: KnownNat n => T (Foo n)-hey = T Hey--ho :: T (Foo 42)-ho = T Hey--f1 :: KnownNat a => Proxy a -> TypeRep-f1 = typeRep--g2 :: KnownSymbol a => Proxy a -> TypeRep-g2 = typeRep--pEqT :: (KnownSymbol a, KnownSymbol b) => Proxy a -> Proxy b -> Maybe (a :~: b)-pEqT Proxy Proxy = eqT
− tests/examples/ghc8/T10351.hs
@@ -1,6 +0,0 @@-module T10351 where--class C a where-  op :: a -> ()--f x = op [x]
− tests/examples/ghc8/T10359.hs
@@ -1,125 +0,0 @@-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE ConstraintKinds #-}--module Main( main, boo ) where--import Prelude hiding (repeat)--boo xs f = (\x -> f x, xs)--repeat :: Int -> (a -> a) -> a -> a-repeat 1 f x = f x-repeat n f x = n `seq` x `seq` repeat (n-1) f $ f x------ Buggy version---------------------type Numerical a = (Fractional a, Real a)--data Box a = Box-    { func :: forall dum. (Numerical dum) => dum -> a -> a-    , obj :: !a }--do_step :: (Numerical num) => num -> Box a -> Box a-do_step number Box{..} = Box{ obj = func number obj, .. }--start :: Box Double-start = Box { func = \x y -> realToFrac x + y-            , obj = 0 }--test :: Int -> IO ()-test steps = putStrLn $ show $ obj $ repeat steps (do_step 1) start------ Driver--------------main :: IO ()-main = test 2000 -- compare test2 10000000 or test3 10000000, but test4 20000---{------ No tuple constraint synonym is better---------------------------------------------data Box2 a = Box2-    { func2 :: forall num. (Fractional num, Real num) => num -> a -> a-    , obj2 :: !a }--do_step2 :: (Fractional num, Real num) => num -> Box2 a -> Box2 a-do_step2 number Box2{..} = Box2{ obj2 = func2 number obj2, ..}--start2 :: Box2 Double-start2 = Box2 { func2 = \x y -> realToFrac x + y-              , obj2 = 0 }--test2 :: Int -> IO ()-test2 steps = putStrLn $ show $ obj2 $ repeat steps (do_step2 1) start2------ Not copying the function field works too------------------------------------------------do_step3 :: (Numerical num) => num -> Box a -> Box a-do_step3 number b@Box{..} = b{ obj = func number obj }--test3 :: Int -> IO ()-test3 steps = putStrLn $ show $ obj $ repeat steps (do_step3 1) start------ But record wildcards are not at fault---------------------------------------------do_step4 :: (Numerical num) => num -> Box a -> Box a-do_step4 number Box{func = f, obj = x} = Box{ obj = f number x, func = f }--test4 :: Int -> IO ()-test4 steps = putStrLn $ show $ obj $ repeat steps (do_step4 1) start--}---{--First of all, very nice example. Thank you for making it so small and easy to work with.--I can see what's happening. The key part is what happens here:-{{{-do_step4 :: (Numerical num) => num -> Box a -> Box a-do_step4 number Box{ func = f, obj = x}-              = Box{ func = f, obj = f number x }-}}}-After elaboration (ie making dictionaries explicit) we get this:-{{{-do_step4 dn1 number (Box {func = f, obj = x })-  = Box { func = \dn2 -> f ( case dn2 of (f,r) -> f-                           , case dn2 of (f,r) -> r)-        , obj = f dn1 number x }-}}}-That's odd!  We expected this:-{{{-do_step4 dn1 number (Box {func = f, obj = x })-  = Box { func = f-        , obj = f dn1 number x }-}}}-And indeed, the allocation of all those `\dn2` closures is what is causing the problem.-So we are missing this optimisation:-{{{-   (case dn2 of (f,r) -> f, case dn2 of (f,r) -> r)-===>-   dn2-}}}-If we did this, then the lambda would look like `\dn2 -> f dn2` which could eta-reduce to `f`.-But there are at least three problems:- * The tuple transformation above is hard to spot- * The tuple transformation is not quite semantically right; if `dn2` was bottom, the LHS and RHS are different- * The eta-reduction isn't quite semantically right: if `f` ws bottom, the LHS and RHS are different.--You might argue that the latter two can be ignored because dictionary arguments are special;-indeed we often toy with making them strict.--But perhaps a better way to avoid the tuple-transformation issue would be not to construct that strange expression in the first place. Where is it coming from?  It comes from the call to `f` (admittedly applied to no arguments) in `Box { ..., func = f }`.  GHC needs a dictionary for `(Numerical dum)` (I changed the name of the type variable in `func`'s type in the definition of `Box`).  Since it's just a pair GHC says "fine, I'll build a pair, out of `Fractional dum` and `Real dum`.  How does it get those dictionaries?  By selecting the components of the `Franctional dum` passed to `f`.--If GHC said instead "I need `Numerical dum` and behold I have one in hand, it'd be much better. It doesn't because tuple constraints are treated specially.  But if we adopted the idea in #10362, we would (automatically) get to re-use the `Numerical dum` constraint.  That would leave us with eta reduction, which is easier.--As to what will get you rolling, a good solution is `test3`, which saves instantiating and re-generalising `f`. The key thing is to update all the fields ''except'' the polymorphic `func` field. I'm surprised you say that it doesn't work.  Can you give a (presumably more complicated) example to demonstrate? Maybe there's a separate bug!---}--
− tests/examples/ghc8/T10361a.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE DeriveAnyClass #-}-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE TypeFamilies #-}-module T10361a where--class C1 a where-  type T1 a-  type instance T1 a = Char--class C2 a where -- equivalent to C1-  type T2 a-  type instance T2 a = Char--class C3 a where -- equivalent to C1, C2-  type T3 a-  type instance T3 a = Char--data A = B-  deriving C1--deriving instance C2 A--instance C3 A--test1 :: T1 A-test1 = 'x'--test2 :: T2 A-test2 = 'x'--test3 :: T3 A-test3 = 'x'
− tests/examples/ghc8/T10361b.hs
@@ -1,58 +0,0 @@-{-# LANGUAGE DefaultSignatures #-}-{-# LANGUAGE DeriveAnyClass #-}-{-# LANGUAGE DeriveGeneric #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TypeOperators #-}-{-# LANGUAGE UndecidableInstances #-}--module T10361b where--import GHC.Generics------------------------------------------------------------------------class Convert a where-    type Result a-    type instance Result a = GResult (Rep a)--    convert :: a -> Result a-    default convert :: (Generic a, GConvert (Rep a)) => a -> GResult (Rep a)-    convert x = gconvert (from x)--instance Convert Float where-    type Result Float = Float-    convert = id--instance Convert Int where-    type Result Int = Int-    convert = id------------------------------------------------------------------------class GConvert f where-    type GResult f-    gconvert :: f p -> GResult f--instance (Convert c) => GConvert (K1 i c) where-    type GResult (K1 i c) = Result c-    gconvert (K1 x) = convert x--instance (GConvert f) => GConvert (M1 i t f) where-    type GResult (M1 i t f) = GResult f-    gconvert (M1 x) = gconvert x--instance (GConvert f, GConvert g) => GConvert (f :*: g) where-    type GResult (f :*: g) = (GResult f, GResult g)-    gconvert (x :*: y) = (gconvert x, gconvert y)-------------------------------------------------------------------------data Data1 = Data1 Int Float-    deriving (Generic)--instance Convert Data1--val :: (Int, Float)-val = convert $ Data1 0 0.0--data Data2 = Data2 Int Float-    deriving (Generic, Convert)
− tests/examples/ghc8/T10370.hs
@@ -1,1002 +0,0 @@-module Out where-import Control.Monad (forever)-a1 :: IO (); a1 = forever $ putStrLn "a1"-a2 :: IO (); a2 = forever $ putStrLn "a2"-a3 :: IO (); a3 = forever $ putStrLn "a3"-a4 :: IO (); a4 = forever $ putStrLn "a4"-a5 :: IO (); a5 = forever $ putStrLn "a5"-a6 :: IO (); a6 = forever $ putStrLn "a6"-a7 :: IO (); a7 = forever $ putStrLn "a7"-a8 :: IO (); a8 = forever $ putStrLn "a8"-a9 :: IO (); a9 = forever $ putStrLn "a9"-a10 :: IO (); a10 = forever $ putStrLn "a10"-a11 :: IO (); a11 = forever $ putStrLn "a11"-a12 :: IO (); a12 = forever $ putStrLn "a12"-a13 :: IO (); a13 = forever $ putStrLn "a13"-a14 :: IO (); a14 = forever $ putStrLn "a14"-a15 :: IO (); a15 = forever $ putStrLn "a15"-a16 :: IO (); a16 = forever $ putStrLn "a16"-a17 :: IO (); a17 = forever $ putStrLn "a17"-a18 :: IO (); a18 = forever $ putStrLn "a18"-a19 :: IO (); a19 = forever $ putStrLn "a19"-a20 :: IO (); a20 = forever $ putStrLn "a20"-a21 :: IO (); a21 = forever $ putStrLn "a21"-a22 :: IO (); a22 = forever $ putStrLn "a22"-a23 :: IO (); a23 = forever $ putStrLn "a23"-a24 :: IO (); a24 = forever $ putStrLn "a24"-a25 :: IO (); a25 = forever $ putStrLn "a25"-a26 :: IO (); a26 = forever $ putStrLn "a26"-a27 :: IO (); a27 = forever $ putStrLn "a27"-a28 :: IO (); a28 = forever $ putStrLn "a28"-a29 :: IO (); a29 = forever $ putStrLn "a29"-a30 :: IO (); a30 = forever $ putStrLn "a30"-a31 :: IO (); a31 = forever $ putStrLn "a31"-a32 :: IO (); a32 = forever $ putStrLn "a32"-a33 :: IO (); a33 = forever $ putStrLn "a33"-a34 :: IO (); a34 = forever $ putStrLn "a34"-a35 :: IO (); a35 = forever $ putStrLn "a35"-a36 :: IO (); a36 = forever $ putStrLn "a36"-a37 :: IO (); a37 = forever $ putStrLn "a37"-a38 :: IO (); a38 = forever $ putStrLn "a38"-a39 :: IO (); a39 = forever $ putStrLn "a39"-a40 :: IO (); a40 = forever $ putStrLn "a40"-a41 :: IO (); a41 = forever $ putStrLn "a41"-a42 :: IO (); a42 = forever $ putStrLn "a42"-a43 :: IO (); a43 = forever $ putStrLn "a43"-a44 :: IO (); a44 = forever $ putStrLn "a44"-a45 :: IO (); a45 = forever $ putStrLn "a45"-a46 :: IO (); a46 = forever $ putStrLn "a46"-a47 :: IO (); a47 = forever $ putStrLn "a47"-a48 :: IO (); a48 = forever $ putStrLn "a48"-a49 :: IO (); a49 = forever $ putStrLn "a49"-a50 :: IO (); a50 = forever $ putStrLn "a50"-a51 :: IO (); a51 = forever $ putStrLn "a51"-a52 :: IO (); a52 = forever $ putStrLn "a52"-a53 :: IO (); a53 = forever $ putStrLn "a53"-a54 :: IO (); a54 = forever $ putStrLn "a54"-a55 :: IO (); a55 = forever $ putStrLn "a55"-a56 :: IO (); a56 = forever $ putStrLn "a56"-a57 :: IO (); a57 = forever $ putStrLn "a57"-a58 :: IO (); a58 = forever $ putStrLn "a58"-a59 :: IO (); a59 = forever $ putStrLn "a59"-a60 :: IO (); a60 = forever $ putStrLn "a60"-a61 :: IO (); a61 = forever $ putStrLn "a61"-a62 :: IO (); a62 = forever $ putStrLn "a62"-a63 :: IO (); a63 = forever $ putStrLn "a63"-a64 :: IO (); a64 = forever $ putStrLn "a64"-a65 :: IO (); a65 = forever $ putStrLn "a65"-a66 :: IO (); a66 = forever $ putStrLn "a66"-a67 :: IO (); a67 = forever $ putStrLn "a67"-a68 :: IO (); a68 = forever $ putStrLn "a68"-a69 :: IO (); a69 = forever $ putStrLn "a69"-a70 :: IO (); a70 = forever $ putStrLn "a70"-a71 :: IO (); a71 = forever $ putStrLn "a71"-a72 :: IO (); a72 = forever $ putStrLn "a72"-a73 :: IO (); a73 = forever $ putStrLn "a73"-a74 :: IO (); a74 = forever $ putStrLn "a74"-a75 :: IO (); a75 = forever $ putStrLn "a75"-a76 :: IO (); a76 = forever $ putStrLn "a76"-a77 :: IO (); a77 = forever $ putStrLn "a77"-a78 :: IO (); a78 = forever $ putStrLn "a78"-a79 :: IO (); a79 = forever $ putStrLn "a79"-a80 :: IO (); a80 = forever $ putStrLn "a80"-a81 :: IO (); a81 = forever $ putStrLn "a81"-a82 :: IO (); a82 = forever $ putStrLn "a82"-a83 :: IO (); a83 = forever $ putStrLn "a83"-a84 :: IO (); a84 = forever $ putStrLn "a84"-a85 :: IO (); a85 = forever $ putStrLn "a85"-a86 :: IO (); a86 = forever $ putStrLn "a86"-a87 :: IO (); a87 = forever $ putStrLn "a87"-a88 :: IO (); a88 = forever $ putStrLn "a88"-a89 :: IO (); a89 = forever $ putStrLn "a89"-a90 :: IO (); a90 = forever $ putStrLn "a90"-a91 :: IO (); a91 = forever $ putStrLn "a91"-a92 :: IO (); a92 = forever $ putStrLn "a92"-a93 :: IO (); a93 = forever $ putStrLn "a93"-a94 :: IO (); a94 = forever $ putStrLn "a94"-a95 :: IO (); a95 = forever $ putStrLn "a95"-a96 :: IO (); a96 = forever $ putStrLn "a96"-a97 :: IO (); a97 = forever $ putStrLn "a97"-a98 :: IO (); a98 = forever $ putStrLn "a98"-a99 :: IO (); a99 = forever $ putStrLn "a99"-a100 :: IO (); a100 = forever $ putStrLn "a100"-a101 :: IO (); a101 = forever $ putStrLn "a101"-a102 :: IO (); a102 = forever $ putStrLn "a102"-a103 :: IO (); a103 = forever $ putStrLn "a103"-a104 :: IO (); a104 = forever $ putStrLn "a104"-a105 :: IO (); a105 = forever $ putStrLn "a105"-a106 :: IO (); a106 = forever $ putStrLn "a106"-a107 :: IO (); a107 = forever $ putStrLn "a107"-a108 :: IO (); a108 = forever $ putStrLn "a108"-a109 :: IO (); a109 = forever $ putStrLn "a109"-a110 :: IO (); a110 = forever $ putStrLn "a110"-a111 :: IO (); a111 = forever $ putStrLn "a111"-a112 :: IO (); a112 = forever $ putStrLn "a112"-a113 :: IO (); a113 = forever $ putStrLn "a113"-a114 :: IO (); a114 = forever $ putStrLn "a114"-a115 :: IO (); a115 = forever $ putStrLn "a115"-a116 :: IO (); a116 = forever $ putStrLn "a116"-a117 :: IO (); a117 = forever $ putStrLn "a117"-a118 :: IO (); a118 = forever $ putStrLn "a118"-a119 :: IO (); a119 = forever $ putStrLn "a119"-a120 :: IO (); a120 = forever $ putStrLn "a120"-a121 :: IO (); a121 = forever $ putStrLn "a121"-a122 :: IO (); a122 = forever $ putStrLn "a122"-a123 :: IO (); a123 = forever $ putStrLn "a123"-a124 :: IO (); a124 = forever $ putStrLn "a124"-a125 :: IO (); a125 = forever $ putStrLn "a125"-a126 :: IO (); a126 = forever $ putStrLn "a126"-a127 :: IO (); a127 = forever $ putStrLn "a127"-a128 :: IO (); a128 = forever $ putStrLn "a128"-a129 :: IO (); a129 = forever $ putStrLn "a129"-a130 :: IO (); a130 = forever $ putStrLn "a130"-a131 :: IO (); a131 = forever $ putStrLn "a131"-a132 :: IO (); a132 = forever $ putStrLn "a132"-a133 :: IO (); a133 = forever $ putStrLn "a133"-a134 :: IO (); a134 = forever $ putStrLn "a134"-a135 :: IO (); a135 = forever $ putStrLn "a135"-a136 :: IO (); a136 = forever $ putStrLn "a136"-a137 :: IO (); a137 = forever $ putStrLn "a137"-a138 :: IO (); a138 = forever $ putStrLn "a138"-a139 :: IO (); a139 = forever $ putStrLn "a139"-a140 :: IO (); a140 = forever $ putStrLn "a140"-a141 :: IO (); a141 = forever $ putStrLn "a141"-a142 :: IO (); a142 = forever $ putStrLn "a142"-a143 :: IO (); a143 = forever $ putStrLn "a143"-a144 :: IO (); a144 = forever $ putStrLn "a144"-a145 :: IO (); a145 = forever $ putStrLn "a145"-a146 :: IO (); a146 = forever $ putStrLn "a146"-a147 :: IO (); a147 = forever $ putStrLn "a147"-a148 :: IO (); a148 = forever $ putStrLn "a148"-a149 :: IO (); a149 = forever $ putStrLn "a149"-a150 :: IO (); a150 = forever $ putStrLn "a150"-a151 :: IO (); a151 = forever $ putStrLn "a151"-a152 :: IO (); a152 = forever $ putStrLn "a152"-a153 :: IO (); a153 = forever $ putStrLn "a153"-a154 :: IO (); a154 = forever $ putStrLn "a154"-a155 :: IO (); a155 = forever $ putStrLn "a155"-a156 :: IO (); a156 = forever $ putStrLn "a156"-a157 :: IO (); a157 = forever $ putStrLn "a157"-a158 :: IO (); a158 = forever $ putStrLn "a158"-a159 :: IO (); a159 = forever $ putStrLn "a159"-a160 :: IO (); a160 = forever $ putStrLn "a160"-a161 :: IO (); a161 = forever $ putStrLn "a161"-a162 :: IO (); a162 = forever $ putStrLn "a162"-a163 :: IO (); a163 = forever $ putStrLn "a163"-a164 :: IO (); a164 = forever $ putStrLn "a164"-a165 :: IO (); a165 = forever $ putStrLn "a165"-a166 :: IO (); a166 = forever $ putStrLn "a166"-a167 :: IO (); a167 = forever $ putStrLn "a167"-a168 :: IO (); a168 = forever $ putStrLn "a168"-a169 :: IO (); a169 = forever $ putStrLn "a169"-a170 :: IO (); a170 = forever $ putStrLn "a170"-a171 :: IO (); a171 = forever $ putStrLn "a171"-a172 :: IO (); a172 = forever $ putStrLn "a172"-a173 :: IO (); a173 = forever $ putStrLn "a173"-a174 :: IO (); a174 = forever $ putStrLn "a174"-a175 :: IO (); a175 = forever $ putStrLn "a175"-a176 :: IO (); a176 = forever $ putStrLn "a176"-a177 :: IO (); a177 = forever $ putStrLn "a177"-a178 :: IO (); a178 = forever $ putStrLn "a178"-a179 :: IO (); a179 = forever $ putStrLn "a179"-a180 :: IO (); a180 = forever $ putStrLn "a180"-a181 :: IO (); a181 = forever $ putStrLn "a181"-a182 :: IO (); a182 = forever $ putStrLn "a182"-a183 :: IO (); a183 = forever $ putStrLn "a183"-a184 :: IO (); a184 = forever $ putStrLn "a184"-a185 :: IO (); a185 = forever $ putStrLn "a185"-a186 :: IO (); a186 = forever $ putStrLn "a186"-a187 :: IO (); a187 = forever $ putStrLn "a187"-a188 :: IO (); a188 = forever $ putStrLn "a188"-a189 :: IO (); a189 = forever $ putStrLn "a189"-a190 :: IO (); a190 = forever $ putStrLn "a190"-a191 :: IO (); a191 = forever $ putStrLn "a191"-a192 :: IO (); a192 = forever $ putStrLn "a192"-a193 :: IO (); a193 = forever $ putStrLn "a193"-a194 :: IO (); a194 = forever $ putStrLn "a194"-a195 :: IO (); a195 = forever $ putStrLn "a195"-a196 :: IO (); a196 = forever $ putStrLn "a196"-a197 :: IO (); a197 = forever $ putStrLn "a197"-a198 :: IO (); a198 = forever $ putStrLn "a198"-a199 :: IO (); a199 = forever $ putStrLn "a199"-a200 :: IO (); a200 = forever $ putStrLn "a200"-a201 :: IO (); a201 = forever $ putStrLn "a201"-a202 :: IO (); a202 = forever $ putStrLn "a202"-a203 :: IO (); a203 = forever $ putStrLn "a203"-a204 :: IO (); a204 = forever $ putStrLn "a204"-a205 :: IO (); a205 = forever $ putStrLn "a205"-a206 :: IO (); a206 = forever $ putStrLn "a206"-a207 :: IO (); a207 = forever $ putStrLn "a207"-a208 :: IO (); a208 = forever $ putStrLn "a208"-a209 :: IO (); a209 = forever $ putStrLn "a209"-a210 :: IO (); a210 = forever $ putStrLn "a210"-a211 :: IO (); a211 = forever $ putStrLn "a211"-a212 :: IO (); a212 = forever $ putStrLn "a212"-a213 :: IO (); a213 = forever $ putStrLn "a213"-a214 :: IO (); a214 = forever $ putStrLn "a214"-a215 :: IO (); a215 = forever $ putStrLn "a215"-a216 :: IO (); a216 = forever $ putStrLn "a216"-a217 :: IO (); a217 = forever $ putStrLn "a217"-a218 :: IO (); a218 = forever $ putStrLn "a218"-a219 :: IO (); a219 = forever $ putStrLn "a219"-a220 :: IO (); a220 = forever $ putStrLn "a220"-a221 :: IO (); a221 = forever $ putStrLn "a221"-a222 :: IO (); a222 = forever $ putStrLn "a222"-a223 :: IO (); a223 = forever $ putStrLn "a223"-a224 :: IO (); a224 = forever $ putStrLn "a224"-a225 :: IO (); a225 = forever $ putStrLn "a225"-a226 :: IO (); a226 = forever $ putStrLn "a226"-a227 :: IO (); a227 = forever $ putStrLn "a227"-a228 :: IO (); a228 = forever $ putStrLn "a228"-a229 :: IO (); a229 = forever $ putStrLn "a229"-a230 :: IO (); a230 = forever $ putStrLn "a230"-a231 :: IO (); a231 = forever $ putStrLn "a231"-a232 :: IO (); a232 = forever $ putStrLn "a232"-a233 :: IO (); a233 = forever $ putStrLn "a233"-a234 :: IO (); a234 = forever $ putStrLn "a234"-a235 :: IO (); a235 = forever $ putStrLn "a235"-a236 :: IO (); a236 = forever $ putStrLn "a236"-a237 :: IO (); a237 = forever $ putStrLn "a237"-a238 :: IO (); a238 = forever $ putStrLn "a238"-a239 :: IO (); a239 = forever $ putStrLn "a239"-a240 :: IO (); a240 = forever $ putStrLn "a240"-a241 :: IO (); a241 = forever $ putStrLn "a241"-a242 :: IO (); a242 = forever $ putStrLn "a242"-a243 :: IO (); a243 = forever $ putStrLn "a243"-a244 :: IO (); a244 = forever $ putStrLn "a244"-a245 :: IO (); a245 = forever $ putStrLn "a245"-a246 :: IO (); a246 = forever $ putStrLn "a246"-a247 :: IO (); a247 = forever $ putStrLn "a247"-a248 :: IO (); a248 = forever $ putStrLn "a248"-a249 :: IO (); a249 = forever $ putStrLn "a249"-a250 :: IO (); a250 = forever $ putStrLn "a250"-a251 :: IO (); a251 = forever $ putStrLn "a251"-a252 :: IO (); a252 = forever $ putStrLn "a252"-a253 :: IO (); a253 = forever $ putStrLn "a253"-a254 :: IO (); a254 = forever $ putStrLn "a254"-a255 :: IO (); a255 = forever $ putStrLn "a255"-a256 :: IO (); a256 = forever $ putStrLn "a256"-a257 :: IO (); a257 = forever $ putStrLn "a257"-a258 :: IO (); a258 = forever $ putStrLn "a258"-a259 :: IO (); a259 = forever $ putStrLn "a259"-a260 :: IO (); a260 = forever $ putStrLn "a260"-a261 :: IO (); a261 = forever $ putStrLn "a261"-a262 :: IO (); a262 = forever $ putStrLn "a262"-a263 :: IO (); a263 = forever $ putStrLn "a263"-a264 :: IO (); a264 = forever $ putStrLn "a264"-a265 :: IO (); a265 = forever $ putStrLn "a265"-a266 :: IO (); a266 = forever $ putStrLn "a266"-a267 :: IO (); a267 = forever $ putStrLn "a267"-a268 :: IO (); a268 = forever $ putStrLn "a268"-a269 :: IO (); a269 = forever $ putStrLn "a269"-a270 :: IO (); a270 = forever $ putStrLn "a270"-a271 :: IO (); a271 = forever $ putStrLn "a271"-a272 :: IO (); a272 = forever $ putStrLn "a272"-a273 :: IO (); a273 = forever $ putStrLn "a273"-a274 :: IO (); a274 = forever $ putStrLn "a274"-a275 :: IO (); a275 = forever $ putStrLn "a275"-a276 :: IO (); a276 = forever $ putStrLn "a276"-a277 :: IO (); a277 = forever $ putStrLn "a277"-a278 :: IO (); a278 = forever $ putStrLn "a278"-a279 :: IO (); a279 = forever $ putStrLn "a279"-a280 :: IO (); a280 = forever $ putStrLn "a280"-a281 :: IO (); a281 = forever $ putStrLn "a281"-a282 :: IO (); a282 = forever $ putStrLn "a282"-a283 :: IO (); a283 = forever $ putStrLn "a283"-a284 :: IO (); a284 = forever $ putStrLn "a284"-a285 :: IO (); a285 = forever $ putStrLn "a285"-a286 :: IO (); a286 = forever $ putStrLn "a286"-a287 :: IO (); a287 = forever $ putStrLn "a287"-a288 :: IO (); a288 = forever $ putStrLn "a288"-a289 :: IO (); a289 = forever $ putStrLn "a289"-a290 :: IO (); a290 = forever $ putStrLn "a290"-a291 :: IO (); a291 = forever $ putStrLn "a291"-a292 :: IO (); a292 = forever $ putStrLn "a292"-a293 :: IO (); a293 = forever $ putStrLn "a293"-a294 :: IO (); a294 = forever $ putStrLn "a294"-a295 :: IO (); a295 = forever $ putStrLn "a295"-a296 :: IO (); a296 = forever $ putStrLn "a296"-a297 :: IO (); a297 = forever $ putStrLn "a297"-a298 :: IO (); a298 = forever $ putStrLn "a298"-a299 :: IO (); a299 = forever $ putStrLn "a299"-a300 :: IO (); a300 = forever $ putStrLn "a300"-a301 :: IO (); a301 = forever $ putStrLn "a301"-a302 :: IO (); a302 = forever $ putStrLn "a302"-a303 :: IO (); a303 = forever $ putStrLn "a303"-a304 :: IO (); a304 = forever $ putStrLn "a304"-a305 :: IO (); a305 = forever $ putStrLn "a305"-a306 :: IO (); a306 = forever $ putStrLn "a306"-a307 :: IO (); a307 = forever $ putStrLn "a307"-a308 :: IO (); a308 = forever $ putStrLn "a308"-a309 :: IO (); a309 = forever $ putStrLn "a309"-a310 :: IO (); a310 = forever $ putStrLn "a310"-a311 :: IO (); a311 = forever $ putStrLn "a311"-a312 :: IO (); a312 = forever $ putStrLn "a312"-a313 :: IO (); a313 = forever $ putStrLn "a313"-a314 :: IO (); a314 = forever $ putStrLn "a314"-a315 :: IO (); a315 = forever $ putStrLn "a315"-a316 :: IO (); a316 = forever $ putStrLn "a316"-a317 :: IO (); a317 = forever $ putStrLn "a317"-a318 :: IO (); a318 = forever $ putStrLn "a318"-a319 :: IO (); a319 = forever $ putStrLn "a319"-a320 :: IO (); a320 = forever $ putStrLn "a320"-a321 :: IO (); a321 = forever $ putStrLn "a321"-a322 :: IO (); a322 = forever $ putStrLn "a322"-a323 :: IO (); a323 = forever $ putStrLn "a323"-a324 :: IO (); a324 = forever $ putStrLn "a324"-a325 :: IO (); a325 = forever $ putStrLn "a325"-a326 :: IO (); a326 = forever $ putStrLn "a326"-a327 :: IO (); a327 = forever $ putStrLn "a327"-a328 :: IO (); a328 = forever $ putStrLn "a328"-a329 :: IO (); a329 = forever $ putStrLn "a329"-a330 :: IO (); a330 = forever $ putStrLn "a330"-a331 :: IO (); a331 = forever $ putStrLn "a331"-a332 :: IO (); a332 = forever $ putStrLn "a332"-a333 :: IO (); a333 = forever $ putStrLn "a333"-a334 :: IO (); a334 = forever $ putStrLn "a334"-a335 :: IO (); a335 = forever $ putStrLn "a335"-a336 :: IO (); a336 = forever $ putStrLn "a336"-a337 :: IO (); a337 = forever $ putStrLn "a337"-a338 :: IO (); a338 = forever $ putStrLn "a338"-a339 :: IO (); a339 = forever $ putStrLn "a339"-a340 :: IO (); a340 = forever $ putStrLn "a340"-a341 :: IO (); a341 = forever $ putStrLn "a341"-a342 :: IO (); a342 = forever $ putStrLn "a342"-a343 :: IO (); a343 = forever $ putStrLn "a343"-a344 :: IO (); a344 = forever $ putStrLn "a344"-a345 :: IO (); a345 = forever $ putStrLn "a345"-a346 :: IO (); a346 = forever $ putStrLn "a346"-a347 :: IO (); a347 = forever $ putStrLn "a347"-a348 :: IO (); a348 = forever $ putStrLn "a348"-a349 :: IO (); a349 = forever $ putStrLn "a349"-a350 :: IO (); a350 = forever $ putStrLn "a350"-a351 :: IO (); a351 = forever $ putStrLn "a351"-a352 :: IO (); a352 = forever $ putStrLn "a352"-a353 :: IO (); a353 = forever $ putStrLn "a353"-a354 :: IO (); a354 = forever $ putStrLn "a354"-a355 :: IO (); a355 = forever $ putStrLn "a355"-a356 :: IO (); a356 = forever $ putStrLn "a356"-a357 :: IO (); a357 = forever $ putStrLn "a357"-a358 :: IO (); a358 = forever $ putStrLn "a358"-a359 :: IO (); a359 = forever $ putStrLn "a359"-a360 :: IO (); a360 = forever $ putStrLn "a360"-a361 :: IO (); a361 = forever $ putStrLn "a361"-a362 :: IO (); a362 = forever $ putStrLn "a362"-a363 :: IO (); a363 = forever $ putStrLn "a363"-a364 :: IO (); a364 = forever $ putStrLn "a364"-a365 :: IO (); a365 = forever $ putStrLn "a365"-a366 :: IO (); a366 = forever $ putStrLn "a366"-a367 :: IO (); a367 = forever $ putStrLn "a367"-a368 :: IO (); a368 = forever $ putStrLn "a368"-a369 :: IO (); a369 = forever $ putStrLn "a369"-a370 :: IO (); a370 = forever $ putStrLn "a370"-a371 :: IO (); a371 = forever $ putStrLn "a371"-a372 :: IO (); a372 = forever $ putStrLn "a372"-a373 :: IO (); a373 = forever $ putStrLn "a373"-a374 :: IO (); a374 = forever $ putStrLn "a374"-a375 :: IO (); a375 = forever $ putStrLn "a375"-a376 :: IO (); a376 = forever $ putStrLn "a376"-a377 :: IO (); a377 = forever $ putStrLn "a377"-a378 :: IO (); a378 = forever $ putStrLn "a378"-a379 :: IO (); a379 = forever $ putStrLn "a379"-a380 :: IO (); a380 = forever $ putStrLn "a380"-a381 :: IO (); a381 = forever $ putStrLn "a381"-a382 :: IO (); a382 = forever $ putStrLn "a382"-a383 :: IO (); a383 = forever $ putStrLn "a383"-a384 :: IO (); a384 = forever $ putStrLn "a384"-a385 :: IO (); a385 = forever $ putStrLn "a385"-a386 :: IO (); a386 = forever $ putStrLn "a386"-a387 :: IO (); a387 = forever $ putStrLn "a387"-a388 :: IO (); a388 = forever $ putStrLn "a388"-a389 :: IO (); a389 = forever $ putStrLn "a389"-a390 :: IO (); a390 = forever $ putStrLn "a390"-a391 :: IO (); a391 = forever $ putStrLn "a391"-a392 :: IO (); a392 = forever $ putStrLn "a392"-a393 :: IO (); a393 = forever $ putStrLn "a393"-a394 :: IO (); a394 = forever $ putStrLn "a394"-a395 :: IO (); a395 = forever $ putStrLn "a395"-a396 :: IO (); a396 = forever $ putStrLn "a396"-a397 :: IO (); a397 = forever $ putStrLn "a397"-a398 :: IO (); a398 = forever $ putStrLn "a398"-a399 :: IO (); a399 = forever $ putStrLn "a399"-a400 :: IO (); a400 = forever $ putStrLn "a400"-a401 :: IO (); a401 = forever $ putStrLn "a401"-a402 :: IO (); a402 = forever $ putStrLn "a402"-a403 :: IO (); a403 = forever $ putStrLn "a403"-a404 :: IO (); a404 = forever $ putStrLn "a404"-a405 :: IO (); a405 = forever $ putStrLn "a405"-a406 :: IO (); a406 = forever $ putStrLn "a406"-a407 :: IO (); a407 = forever $ putStrLn "a407"-a408 :: IO (); a408 = forever $ putStrLn "a408"-a409 :: IO (); a409 = forever $ putStrLn "a409"-a410 :: IO (); a410 = forever $ putStrLn "a410"-a411 :: IO (); a411 = forever $ putStrLn "a411"-a412 :: IO (); a412 = forever $ putStrLn "a412"-a413 :: IO (); a413 = forever $ putStrLn "a413"-a414 :: IO (); a414 = forever $ putStrLn "a414"-a415 :: IO (); a415 = forever $ putStrLn "a415"-a416 :: IO (); a416 = forever $ putStrLn "a416"-a417 :: IO (); a417 = forever $ putStrLn "a417"-a418 :: IO (); a418 = forever $ putStrLn "a418"-a419 :: IO (); a419 = forever $ putStrLn "a419"-a420 :: IO (); a420 = forever $ putStrLn "a420"-a421 :: IO (); a421 = forever $ putStrLn "a421"-a422 :: IO (); a422 = forever $ putStrLn "a422"-a423 :: IO (); a423 = forever $ putStrLn "a423"-a424 :: IO (); a424 = forever $ putStrLn "a424"-a425 :: IO (); a425 = forever $ putStrLn "a425"-a426 :: IO (); a426 = forever $ putStrLn "a426"-a427 :: IO (); a427 = forever $ putStrLn "a427"-a428 :: IO (); a428 = forever $ putStrLn "a428"-a429 :: IO (); a429 = forever $ putStrLn "a429"-a430 :: IO (); a430 = forever $ putStrLn "a430"-a431 :: IO (); a431 = forever $ putStrLn "a431"-a432 :: IO (); a432 = forever $ putStrLn "a432"-a433 :: IO (); a433 = forever $ putStrLn "a433"-a434 :: IO (); a434 = forever $ putStrLn "a434"-a435 :: IO (); a435 = forever $ putStrLn "a435"-a436 :: IO (); a436 = forever $ putStrLn "a436"-a437 :: IO (); a437 = forever $ putStrLn "a437"-a438 :: IO (); a438 = forever $ putStrLn "a438"-a439 :: IO (); a439 = forever $ putStrLn "a439"-a440 :: IO (); a440 = forever $ putStrLn "a440"-a441 :: IO (); a441 = forever $ putStrLn "a441"-a442 :: IO (); a442 = forever $ putStrLn "a442"-a443 :: IO (); a443 = forever $ putStrLn "a443"-a444 :: IO (); a444 = forever $ putStrLn "a444"-a445 :: IO (); a445 = forever $ putStrLn "a445"-a446 :: IO (); a446 = forever $ putStrLn "a446"-a447 :: IO (); a447 = forever $ putStrLn "a447"-a448 :: IO (); a448 = forever $ putStrLn "a448"-a449 :: IO (); a449 = forever $ putStrLn "a449"-a450 :: IO (); a450 = forever $ putStrLn "a450"-a451 :: IO (); a451 = forever $ putStrLn "a451"-a452 :: IO (); a452 = forever $ putStrLn "a452"-a453 :: IO (); a453 = forever $ putStrLn "a453"-a454 :: IO (); a454 = forever $ putStrLn "a454"-a455 :: IO (); a455 = forever $ putStrLn "a455"-a456 :: IO (); a456 = forever $ putStrLn "a456"-a457 :: IO (); a457 = forever $ putStrLn "a457"-a458 :: IO (); a458 = forever $ putStrLn "a458"-a459 :: IO (); a459 = forever $ putStrLn "a459"-a460 :: IO (); a460 = forever $ putStrLn "a460"-a461 :: IO (); a461 = forever $ putStrLn "a461"-a462 :: IO (); a462 = forever $ putStrLn "a462"-a463 :: IO (); a463 = forever $ putStrLn "a463"-a464 :: IO (); a464 = forever $ putStrLn "a464"-a465 :: IO (); a465 = forever $ putStrLn "a465"-a466 :: IO (); a466 = forever $ putStrLn "a466"-a467 :: IO (); a467 = forever $ putStrLn "a467"-a468 :: IO (); a468 = forever $ putStrLn "a468"-a469 :: IO (); a469 = forever $ putStrLn "a469"-a470 :: IO (); a470 = forever $ putStrLn "a470"-a471 :: IO (); a471 = forever $ putStrLn "a471"-a472 :: IO (); a472 = forever $ putStrLn "a472"-a473 :: IO (); a473 = forever $ putStrLn "a473"-a474 :: IO (); a474 = forever $ putStrLn "a474"-a475 :: IO (); a475 = forever $ putStrLn "a475"-a476 :: IO (); a476 = forever $ putStrLn "a476"-a477 :: IO (); a477 = forever $ putStrLn "a477"-a478 :: IO (); a478 = forever $ putStrLn "a478"-a479 :: IO (); a479 = forever $ putStrLn "a479"-a480 :: IO (); a480 = forever $ putStrLn "a480"-a481 :: IO (); a481 = forever $ putStrLn "a481"-a482 :: IO (); a482 = forever $ putStrLn "a482"-a483 :: IO (); a483 = forever $ putStrLn "a483"-a484 :: IO (); a484 = forever $ putStrLn "a484"-a485 :: IO (); a485 = forever $ putStrLn "a485"-a486 :: IO (); a486 = forever $ putStrLn "a486"-a487 :: IO (); a487 = forever $ putStrLn "a487"-a488 :: IO (); a488 = forever $ putStrLn "a488"-a489 :: IO (); a489 = forever $ putStrLn "a489"-a490 :: IO (); a490 = forever $ putStrLn "a490"-a491 :: IO (); a491 = forever $ putStrLn "a491"-a492 :: IO (); a492 = forever $ putStrLn "a492"-a493 :: IO (); a493 = forever $ putStrLn "a493"-a494 :: IO (); a494 = forever $ putStrLn "a494"-a495 :: IO (); a495 = forever $ putStrLn "a495"-a496 :: IO (); a496 = forever $ putStrLn "a496"-a497 :: IO (); a497 = forever $ putStrLn "a497"-a498 :: IO (); a498 = forever $ putStrLn "a498"-a499 :: IO (); a499 = forever $ putStrLn "a499"-a500 :: IO (); a500 = forever $ putStrLn "a500"-a501 :: IO (); a501 = forever $ putStrLn "a501"-a502 :: IO (); a502 = forever $ putStrLn "a502"-a503 :: IO (); a503 = forever $ putStrLn "a503"-a504 :: IO (); a504 = forever $ putStrLn "a504"-a505 :: IO (); a505 = forever $ putStrLn "a505"-a506 :: IO (); a506 = forever $ putStrLn "a506"-a507 :: IO (); a507 = forever $ putStrLn "a507"-a508 :: IO (); a508 = forever $ putStrLn "a508"-a509 :: IO (); a509 = forever $ putStrLn "a509"-a510 :: IO (); a510 = forever $ putStrLn "a510"-a511 :: IO (); a511 = forever $ putStrLn "a511"-a512 :: IO (); a512 = forever $ putStrLn "a512"-a513 :: IO (); a513 = forever $ putStrLn "a513"-a514 :: IO (); a514 = forever $ putStrLn "a514"-a515 :: IO (); a515 = forever $ putStrLn "a515"-a516 :: IO (); a516 = forever $ putStrLn "a516"-a517 :: IO (); a517 = forever $ putStrLn "a517"-a518 :: IO (); a518 = forever $ putStrLn "a518"-a519 :: IO (); a519 = forever $ putStrLn "a519"-a520 :: IO (); a520 = forever $ putStrLn "a520"-a521 :: IO (); a521 = forever $ putStrLn "a521"-a522 :: IO (); a522 = forever $ putStrLn "a522"-a523 :: IO (); a523 = forever $ putStrLn "a523"-a524 :: IO (); a524 = forever $ putStrLn "a524"-a525 :: IO (); a525 = forever $ putStrLn "a525"-a526 :: IO (); a526 = forever $ putStrLn "a526"-a527 :: IO (); a527 = forever $ putStrLn "a527"-a528 :: IO (); a528 = forever $ putStrLn "a528"-a529 :: IO (); a529 = forever $ putStrLn "a529"-a530 :: IO (); a530 = forever $ putStrLn "a530"-a531 :: IO (); a531 = forever $ putStrLn "a531"-a532 :: IO (); a532 = forever $ putStrLn "a532"-a533 :: IO (); a533 = forever $ putStrLn "a533"-a534 :: IO (); a534 = forever $ putStrLn "a534"-a535 :: IO (); a535 = forever $ putStrLn "a535"-a536 :: IO (); a536 = forever $ putStrLn "a536"-a537 :: IO (); a537 = forever $ putStrLn "a537"-a538 :: IO (); a538 = forever $ putStrLn "a538"-a539 :: IO (); a539 = forever $ putStrLn "a539"-a540 :: IO (); a540 = forever $ putStrLn "a540"-a541 :: IO (); a541 = forever $ putStrLn "a541"-a542 :: IO (); a542 = forever $ putStrLn "a542"-a543 :: IO (); a543 = forever $ putStrLn "a543"-a544 :: IO (); a544 = forever $ putStrLn "a544"-a545 :: IO (); a545 = forever $ putStrLn "a545"-a546 :: IO (); a546 = forever $ putStrLn "a546"-a547 :: IO (); a547 = forever $ putStrLn "a547"-a548 :: IO (); a548 = forever $ putStrLn "a548"-a549 :: IO (); a549 = forever $ putStrLn "a549"-a550 :: IO (); a550 = forever $ putStrLn "a550"-a551 :: IO (); a551 = forever $ putStrLn "a551"-a552 :: IO (); a552 = forever $ putStrLn "a552"-a553 :: IO (); a553 = forever $ putStrLn "a553"-a554 :: IO (); a554 = forever $ putStrLn "a554"-a555 :: IO (); a555 = forever $ putStrLn "a555"-a556 :: IO (); a556 = forever $ putStrLn "a556"-a557 :: IO (); a557 = forever $ putStrLn "a557"-a558 :: IO (); a558 = forever $ putStrLn "a558"-a559 :: IO (); a559 = forever $ putStrLn "a559"-a560 :: IO (); a560 = forever $ putStrLn "a560"-a561 :: IO (); a561 = forever $ putStrLn "a561"-a562 :: IO (); a562 = forever $ putStrLn "a562"-a563 :: IO (); a563 = forever $ putStrLn "a563"-a564 :: IO (); a564 = forever $ putStrLn "a564"-a565 :: IO (); a565 = forever $ putStrLn "a565"-a566 :: IO (); a566 = forever $ putStrLn "a566"-a567 :: IO (); a567 = forever $ putStrLn "a567"-a568 :: IO (); a568 = forever $ putStrLn "a568"-a569 :: IO (); a569 = forever $ putStrLn "a569"-a570 :: IO (); a570 = forever $ putStrLn "a570"-a571 :: IO (); a571 = forever $ putStrLn "a571"-a572 :: IO (); a572 = forever $ putStrLn "a572"-a573 :: IO (); a573 = forever $ putStrLn "a573"-a574 :: IO (); a574 = forever $ putStrLn "a574"-a575 :: IO (); a575 = forever $ putStrLn "a575"-a576 :: IO (); a576 = forever $ putStrLn "a576"-a577 :: IO (); a577 = forever $ putStrLn "a577"-a578 :: IO (); a578 = forever $ putStrLn "a578"-a579 :: IO (); a579 = forever $ putStrLn "a579"-a580 :: IO (); a580 = forever $ putStrLn "a580"-a581 :: IO (); a581 = forever $ putStrLn "a581"-a582 :: IO (); a582 = forever $ putStrLn "a582"-a583 :: IO (); a583 = forever $ putStrLn "a583"-a584 :: IO (); a584 = forever $ putStrLn "a584"-a585 :: IO (); a585 = forever $ putStrLn "a585"-a586 :: IO (); a586 = forever $ putStrLn "a586"-a587 :: IO (); a587 = forever $ putStrLn "a587"-a588 :: IO (); a588 = forever $ putStrLn "a588"-a589 :: IO (); a589 = forever $ putStrLn "a589"-a590 :: IO (); a590 = forever $ putStrLn "a590"-a591 :: IO (); a591 = forever $ putStrLn "a591"-a592 :: IO (); a592 = forever $ putStrLn "a592"-a593 :: IO (); a593 = forever $ putStrLn "a593"-a594 :: IO (); a594 = forever $ putStrLn "a594"-a595 :: IO (); a595 = forever $ putStrLn "a595"-a596 :: IO (); a596 = forever $ putStrLn "a596"-a597 :: IO (); a597 = forever $ putStrLn "a597"-a598 :: IO (); a598 = forever $ putStrLn "a598"-a599 :: IO (); a599 = forever $ putStrLn "a599"-a600 :: IO (); a600 = forever $ putStrLn "a600"-a601 :: IO (); a601 = forever $ putStrLn "a601"-a602 :: IO (); a602 = forever $ putStrLn "a602"-a603 :: IO (); a603 = forever $ putStrLn "a603"-a604 :: IO (); a604 = forever $ putStrLn "a604"-a605 :: IO (); a605 = forever $ putStrLn "a605"-a606 :: IO (); a606 = forever $ putStrLn "a606"-a607 :: IO (); a607 = forever $ putStrLn "a607"-a608 :: IO (); a608 = forever $ putStrLn "a608"-a609 :: IO (); a609 = forever $ putStrLn "a609"-a610 :: IO (); a610 = forever $ putStrLn "a610"-a611 :: IO (); a611 = forever $ putStrLn "a611"-a612 :: IO (); a612 = forever $ putStrLn "a612"-a613 :: IO (); a613 = forever $ putStrLn "a613"-a614 :: IO (); a614 = forever $ putStrLn "a614"-a615 :: IO (); a615 = forever $ putStrLn "a615"-a616 :: IO (); a616 = forever $ putStrLn "a616"-a617 :: IO (); a617 = forever $ putStrLn "a617"-a618 :: IO (); a618 = forever $ putStrLn "a618"-a619 :: IO (); a619 = forever $ putStrLn "a619"-a620 :: IO (); a620 = forever $ putStrLn "a620"-a621 :: IO (); a621 = forever $ putStrLn "a621"-a622 :: IO (); a622 = forever $ putStrLn "a622"-a623 :: IO (); a623 = forever $ putStrLn "a623"-a624 :: IO (); a624 = forever $ putStrLn "a624"-a625 :: IO (); a625 = forever $ putStrLn "a625"-a626 :: IO (); a626 = forever $ putStrLn "a626"-a627 :: IO (); a627 = forever $ putStrLn "a627"-a628 :: IO (); a628 = forever $ putStrLn "a628"-a629 :: IO (); a629 = forever $ putStrLn "a629"-a630 :: IO (); a630 = forever $ putStrLn "a630"-a631 :: IO (); a631 = forever $ putStrLn "a631"-a632 :: IO (); a632 = forever $ putStrLn "a632"-a633 :: IO (); a633 = forever $ putStrLn "a633"-a634 :: IO (); a634 = forever $ putStrLn "a634"-a635 :: IO (); a635 = forever $ putStrLn "a635"-a636 :: IO (); a636 = forever $ putStrLn "a636"-a637 :: IO (); a637 = forever $ putStrLn "a637"-a638 :: IO (); a638 = forever $ putStrLn "a638"-a639 :: IO (); a639 = forever $ putStrLn "a639"-a640 :: IO (); a640 = forever $ putStrLn "a640"-a641 :: IO (); a641 = forever $ putStrLn "a641"-a642 :: IO (); a642 = forever $ putStrLn "a642"-a643 :: IO (); a643 = forever $ putStrLn "a643"-a644 :: IO (); a644 = forever $ putStrLn "a644"-a645 :: IO (); a645 = forever $ putStrLn "a645"-a646 :: IO (); a646 = forever $ putStrLn "a646"-a647 :: IO (); a647 = forever $ putStrLn "a647"-a648 :: IO (); a648 = forever $ putStrLn "a648"-a649 :: IO (); a649 = forever $ putStrLn "a649"-a650 :: IO (); a650 = forever $ putStrLn "a650"-a651 :: IO (); a651 = forever $ putStrLn "a651"-a652 :: IO (); a652 = forever $ putStrLn "a652"-a653 :: IO (); a653 = forever $ putStrLn "a653"-a654 :: IO (); a654 = forever $ putStrLn "a654"-a655 :: IO (); a655 = forever $ putStrLn "a655"-a656 :: IO (); a656 = forever $ putStrLn "a656"-a657 :: IO (); a657 = forever $ putStrLn "a657"-a658 :: IO (); a658 = forever $ putStrLn "a658"-a659 :: IO (); a659 = forever $ putStrLn "a659"-a660 :: IO (); a660 = forever $ putStrLn "a660"-a661 :: IO (); a661 = forever $ putStrLn "a661"-a662 :: IO (); a662 = forever $ putStrLn "a662"-a663 :: IO (); a663 = forever $ putStrLn "a663"-a664 :: IO (); a664 = forever $ putStrLn "a664"-a665 :: IO (); a665 = forever $ putStrLn "a665"-a666 :: IO (); a666 = forever $ putStrLn "a666"-a667 :: IO (); a667 = forever $ putStrLn "a667"-a668 :: IO (); a668 = forever $ putStrLn "a668"-a669 :: IO (); a669 = forever $ putStrLn "a669"-a670 :: IO (); a670 = forever $ putStrLn "a670"-a671 :: IO (); a671 = forever $ putStrLn "a671"-a672 :: IO (); a672 = forever $ putStrLn "a672"-a673 :: IO (); a673 = forever $ putStrLn "a673"-a674 :: IO (); a674 = forever $ putStrLn "a674"-a675 :: IO (); a675 = forever $ putStrLn "a675"-a676 :: IO (); a676 = forever $ putStrLn "a676"-a677 :: IO (); a677 = forever $ putStrLn "a677"-a678 :: IO (); a678 = forever $ putStrLn "a678"-a679 :: IO (); a679 = forever $ putStrLn "a679"-a680 :: IO (); a680 = forever $ putStrLn "a680"-a681 :: IO (); a681 = forever $ putStrLn "a681"-a682 :: IO (); a682 = forever $ putStrLn "a682"-a683 :: IO (); a683 = forever $ putStrLn "a683"-a684 :: IO (); a684 = forever $ putStrLn "a684"-a685 :: IO (); a685 = forever $ putStrLn "a685"-a686 :: IO (); a686 = forever $ putStrLn "a686"-a687 :: IO (); a687 = forever $ putStrLn "a687"-a688 :: IO (); a688 = forever $ putStrLn "a688"-a689 :: IO (); a689 = forever $ putStrLn "a689"-a690 :: IO (); a690 = forever $ putStrLn "a690"-a691 :: IO (); a691 = forever $ putStrLn "a691"-a692 :: IO (); a692 = forever $ putStrLn "a692"-a693 :: IO (); a693 = forever $ putStrLn "a693"-a694 :: IO (); a694 = forever $ putStrLn "a694"-a695 :: IO (); a695 = forever $ putStrLn "a695"-a696 :: IO (); a696 = forever $ putStrLn "a696"-a697 :: IO (); a697 = forever $ putStrLn "a697"-a698 :: IO (); a698 = forever $ putStrLn "a698"-a699 :: IO (); a699 = forever $ putStrLn "a699"-a700 :: IO (); a700 = forever $ putStrLn "a700"-a701 :: IO (); a701 = forever $ putStrLn "a701"-a702 :: IO (); a702 = forever $ putStrLn "a702"-a703 :: IO (); a703 = forever $ putStrLn "a703"-a704 :: IO (); a704 = forever $ putStrLn "a704"-a705 :: IO (); a705 = forever $ putStrLn "a705"-a706 :: IO (); a706 = forever $ putStrLn "a706"-a707 :: IO (); a707 = forever $ putStrLn "a707"-a708 :: IO (); a708 = forever $ putStrLn "a708"-a709 :: IO (); a709 = forever $ putStrLn "a709"-a710 :: IO (); a710 = forever $ putStrLn "a710"-a711 :: IO (); a711 = forever $ putStrLn "a711"-a712 :: IO (); a712 = forever $ putStrLn "a712"-a713 :: IO (); a713 = forever $ putStrLn "a713"-a714 :: IO (); a714 = forever $ putStrLn "a714"-a715 :: IO (); a715 = forever $ putStrLn "a715"-a716 :: IO (); a716 = forever $ putStrLn "a716"-a717 :: IO (); a717 = forever $ putStrLn "a717"-a718 :: IO (); a718 = forever $ putStrLn "a718"-a719 :: IO (); a719 = forever $ putStrLn "a719"-a720 :: IO (); a720 = forever $ putStrLn "a720"-a721 :: IO (); a721 = forever $ putStrLn "a721"-a722 :: IO (); a722 = forever $ putStrLn "a722"-a723 :: IO (); a723 = forever $ putStrLn "a723"-a724 :: IO (); a724 = forever $ putStrLn "a724"-a725 :: IO (); a725 = forever $ putStrLn "a725"-a726 :: IO (); a726 = forever $ putStrLn "a726"-a727 :: IO (); a727 = forever $ putStrLn "a727"-a728 :: IO (); a728 = forever $ putStrLn "a728"-a729 :: IO (); a729 = forever $ putStrLn "a729"-a730 :: IO (); a730 = forever $ putStrLn "a730"-a731 :: IO (); a731 = forever $ putStrLn "a731"-a732 :: IO (); a732 = forever $ putStrLn "a732"-a733 :: IO (); a733 = forever $ putStrLn "a733"-a734 :: IO (); a734 = forever $ putStrLn "a734"-a735 :: IO (); a735 = forever $ putStrLn "a735"-a736 :: IO (); a736 = forever $ putStrLn "a736"-a737 :: IO (); a737 = forever $ putStrLn "a737"-a738 :: IO (); a738 = forever $ putStrLn "a738"-a739 :: IO (); a739 = forever $ putStrLn "a739"-a740 :: IO (); a740 = forever $ putStrLn "a740"-a741 :: IO (); a741 = forever $ putStrLn "a741"-a742 :: IO (); a742 = forever $ putStrLn "a742"-a743 :: IO (); a743 = forever $ putStrLn "a743"-a744 :: IO (); a744 = forever $ putStrLn "a744"-a745 :: IO (); a745 = forever $ putStrLn "a745"-a746 :: IO (); a746 = forever $ putStrLn "a746"-a747 :: IO (); a747 = forever $ putStrLn "a747"-a748 :: IO (); a748 = forever $ putStrLn "a748"-a749 :: IO (); a749 = forever $ putStrLn "a749"-a750 :: IO (); a750 = forever $ putStrLn "a750"-a751 :: IO (); a751 = forever $ putStrLn "a751"-a752 :: IO (); a752 = forever $ putStrLn "a752"-a753 :: IO (); a753 = forever $ putStrLn "a753"-a754 :: IO (); a754 = forever $ putStrLn "a754"-a755 :: IO (); a755 = forever $ putStrLn "a755"-a756 :: IO (); a756 = forever $ putStrLn "a756"-a757 :: IO (); a757 = forever $ putStrLn "a757"-a758 :: IO (); a758 = forever $ putStrLn "a758"-a759 :: IO (); a759 = forever $ putStrLn "a759"-a760 :: IO (); a760 = forever $ putStrLn "a760"-a761 :: IO (); a761 = forever $ putStrLn "a761"-a762 :: IO (); a762 = forever $ putStrLn "a762"-a763 :: IO (); a763 = forever $ putStrLn "a763"-a764 :: IO (); a764 = forever $ putStrLn "a764"-a765 :: IO (); a765 = forever $ putStrLn "a765"-a766 :: IO (); a766 = forever $ putStrLn "a766"-a767 :: IO (); a767 = forever $ putStrLn "a767"-a768 :: IO (); a768 = forever $ putStrLn "a768"-a769 :: IO (); a769 = forever $ putStrLn "a769"-a770 :: IO (); a770 = forever $ putStrLn "a770"-a771 :: IO (); a771 = forever $ putStrLn "a771"-a772 :: IO (); a772 = forever $ putStrLn "a772"-a773 :: IO (); a773 = forever $ putStrLn "a773"-a774 :: IO (); a774 = forever $ putStrLn "a774"-a775 :: IO (); a775 = forever $ putStrLn "a775"-a776 :: IO (); a776 = forever $ putStrLn "a776"-a777 :: IO (); a777 = forever $ putStrLn "a777"-a778 :: IO (); a778 = forever $ putStrLn "a778"-a779 :: IO (); a779 = forever $ putStrLn "a779"-a780 :: IO (); a780 = forever $ putStrLn "a780"-a781 :: IO (); a781 = forever $ putStrLn "a781"-a782 :: IO (); a782 = forever $ putStrLn "a782"-a783 :: IO (); a783 = forever $ putStrLn "a783"-a784 :: IO (); a784 = forever $ putStrLn "a784"-a785 :: IO (); a785 = forever $ putStrLn "a785"-a786 :: IO (); a786 = forever $ putStrLn "a786"-a787 :: IO (); a787 = forever $ putStrLn "a787"-a788 :: IO (); a788 = forever $ putStrLn "a788"-a789 :: IO (); a789 = forever $ putStrLn "a789"-a790 :: IO (); a790 = forever $ putStrLn "a790"-a791 :: IO (); a791 = forever $ putStrLn "a791"-a792 :: IO (); a792 = forever $ putStrLn "a792"-a793 :: IO (); a793 = forever $ putStrLn "a793"-a794 :: IO (); a794 = forever $ putStrLn "a794"-a795 :: IO (); a795 = forever $ putStrLn "a795"-a796 :: IO (); a796 = forever $ putStrLn "a796"-a797 :: IO (); a797 = forever $ putStrLn "a797"-a798 :: IO (); a798 = forever $ putStrLn "a798"-a799 :: IO (); a799 = forever $ putStrLn "a799"-a800 :: IO (); a800 = forever $ putStrLn "a800"-a801 :: IO (); a801 = forever $ putStrLn "a801"-a802 :: IO (); a802 = forever $ putStrLn "a802"-a803 :: IO (); a803 = forever $ putStrLn "a803"-a804 :: IO (); a804 = forever $ putStrLn "a804"-a805 :: IO (); a805 = forever $ putStrLn "a805"-a806 :: IO (); a806 = forever $ putStrLn "a806"-a807 :: IO (); a807 = forever $ putStrLn "a807"-a808 :: IO (); a808 = forever $ putStrLn "a808"-a809 :: IO (); a809 = forever $ putStrLn "a809"-a810 :: IO (); a810 = forever $ putStrLn "a810"-a811 :: IO (); a811 = forever $ putStrLn "a811"-a812 :: IO (); a812 = forever $ putStrLn "a812"-a813 :: IO (); a813 = forever $ putStrLn "a813"-a814 :: IO (); a814 = forever $ putStrLn "a814"-a815 :: IO (); a815 = forever $ putStrLn "a815"-a816 :: IO (); a816 = forever $ putStrLn "a816"-a817 :: IO (); a817 = forever $ putStrLn "a817"-a818 :: IO (); a818 = forever $ putStrLn "a818"-a819 :: IO (); a819 = forever $ putStrLn "a819"-a820 :: IO (); a820 = forever $ putStrLn "a820"-a821 :: IO (); a821 = forever $ putStrLn "a821"-a822 :: IO (); a822 = forever $ putStrLn "a822"-a823 :: IO (); a823 = forever $ putStrLn "a823"-a824 :: IO (); a824 = forever $ putStrLn "a824"-a825 :: IO (); a825 = forever $ putStrLn "a825"-a826 :: IO (); a826 = forever $ putStrLn "a826"-a827 :: IO (); a827 = forever $ putStrLn "a827"-a828 :: IO (); a828 = forever $ putStrLn "a828"-a829 :: IO (); a829 = forever $ putStrLn "a829"-a830 :: IO (); a830 = forever $ putStrLn "a830"-a831 :: IO (); a831 = forever $ putStrLn "a831"-a832 :: IO (); a832 = forever $ putStrLn "a832"-a833 :: IO (); a833 = forever $ putStrLn "a833"-a834 :: IO (); a834 = forever $ putStrLn "a834"-a835 :: IO (); a835 = forever $ putStrLn "a835"-a836 :: IO (); a836 = forever $ putStrLn "a836"-a837 :: IO (); a837 = forever $ putStrLn "a837"-a838 :: IO (); a838 = forever $ putStrLn "a838"-a839 :: IO (); a839 = forever $ putStrLn "a839"-a840 :: IO (); a840 = forever $ putStrLn "a840"-a841 :: IO (); a841 = forever $ putStrLn "a841"-a842 :: IO (); a842 = forever $ putStrLn "a842"-a843 :: IO (); a843 = forever $ putStrLn "a843"-a844 :: IO (); a844 = forever $ putStrLn "a844"-a845 :: IO (); a845 = forever $ putStrLn "a845"-a846 :: IO (); a846 = forever $ putStrLn "a846"-a847 :: IO (); a847 = forever $ putStrLn "a847"-a848 :: IO (); a848 = forever $ putStrLn "a848"-a849 :: IO (); a849 = forever $ putStrLn "a849"-a850 :: IO (); a850 = forever $ putStrLn "a850"-a851 :: IO (); a851 = forever $ putStrLn "a851"-a852 :: IO (); a852 = forever $ putStrLn "a852"-a853 :: IO (); a853 = forever $ putStrLn "a853"-a854 :: IO (); a854 = forever $ putStrLn "a854"-a855 :: IO (); a855 = forever $ putStrLn "a855"-a856 :: IO (); a856 = forever $ putStrLn "a856"-a857 :: IO (); a857 = forever $ putStrLn "a857"-a858 :: IO (); a858 = forever $ putStrLn "a858"-a859 :: IO (); a859 = forever $ putStrLn "a859"-a860 :: IO (); a860 = forever $ putStrLn "a860"-a861 :: IO (); a861 = forever $ putStrLn "a861"-a862 :: IO (); a862 = forever $ putStrLn "a862"-a863 :: IO (); a863 = forever $ putStrLn "a863"-a864 :: IO (); a864 = forever $ putStrLn "a864"-a865 :: IO (); a865 = forever $ putStrLn "a865"-a866 :: IO (); a866 = forever $ putStrLn "a866"-a867 :: IO (); a867 = forever $ putStrLn "a867"-a868 :: IO (); a868 = forever $ putStrLn "a868"-a869 :: IO (); a869 = forever $ putStrLn "a869"-a870 :: IO (); a870 = forever $ putStrLn "a870"-a871 :: IO (); a871 = forever $ putStrLn "a871"-a872 :: IO (); a872 = forever $ putStrLn "a872"-a873 :: IO (); a873 = forever $ putStrLn "a873"-a874 :: IO (); a874 = forever $ putStrLn "a874"-a875 :: IO (); a875 = forever $ putStrLn "a875"-a876 :: IO (); a876 = forever $ putStrLn "a876"-a877 :: IO (); a877 = forever $ putStrLn "a877"-a878 :: IO (); a878 = forever $ putStrLn "a878"-a879 :: IO (); a879 = forever $ putStrLn "a879"-a880 :: IO (); a880 = forever $ putStrLn "a880"-a881 :: IO (); a881 = forever $ putStrLn "a881"-a882 :: IO (); a882 = forever $ putStrLn "a882"-a883 :: IO (); a883 = forever $ putStrLn "a883"-a884 :: IO (); a884 = forever $ putStrLn "a884"-a885 :: IO (); a885 = forever $ putStrLn "a885"-a886 :: IO (); a886 = forever $ putStrLn "a886"-a887 :: IO (); a887 = forever $ putStrLn "a887"-a888 :: IO (); a888 = forever $ putStrLn "a888"-a889 :: IO (); a889 = forever $ putStrLn "a889"-a890 :: IO (); a890 = forever $ putStrLn "a890"-a891 :: IO (); a891 = forever $ putStrLn "a891"-a892 :: IO (); a892 = forever $ putStrLn "a892"-a893 :: IO (); a893 = forever $ putStrLn "a893"-a894 :: IO (); a894 = forever $ putStrLn "a894"-a895 :: IO (); a895 = forever $ putStrLn "a895"-a896 :: IO (); a896 = forever $ putStrLn "a896"-a897 :: IO (); a897 = forever $ putStrLn "a897"-a898 :: IO (); a898 = forever $ putStrLn "a898"-a899 :: IO (); a899 = forever $ putStrLn "a899"-a900 :: IO (); a900 = forever $ putStrLn "a900"-a901 :: IO (); a901 = forever $ putStrLn "a901"-a902 :: IO (); a902 = forever $ putStrLn "a902"-a903 :: IO (); a903 = forever $ putStrLn "a903"-a904 :: IO (); a904 = forever $ putStrLn "a904"-a905 :: IO (); a905 = forever $ putStrLn "a905"-a906 :: IO (); a906 = forever $ putStrLn "a906"-a907 :: IO (); a907 = forever $ putStrLn "a907"-a908 :: IO (); a908 = forever $ putStrLn "a908"-a909 :: IO (); a909 = forever $ putStrLn "a909"-a910 :: IO (); a910 = forever $ putStrLn "a910"-a911 :: IO (); a911 = forever $ putStrLn "a911"-a912 :: IO (); a912 = forever $ putStrLn "a912"-a913 :: IO (); a913 = forever $ putStrLn "a913"-a914 :: IO (); a914 = forever $ putStrLn "a914"-a915 :: IO (); a915 = forever $ putStrLn "a915"-a916 :: IO (); a916 = forever $ putStrLn "a916"-a917 :: IO (); a917 = forever $ putStrLn "a917"-a918 :: IO (); a918 = forever $ putStrLn "a918"-a919 :: IO (); a919 = forever $ putStrLn "a919"-a920 :: IO (); a920 = forever $ putStrLn "a920"-a921 :: IO (); a921 = forever $ putStrLn "a921"-a922 :: IO (); a922 = forever $ putStrLn "a922"-a923 :: IO (); a923 = forever $ putStrLn "a923"-a924 :: IO (); a924 = forever $ putStrLn "a924"-a925 :: IO (); a925 = forever $ putStrLn "a925"-a926 :: IO (); a926 = forever $ putStrLn "a926"-a927 :: IO (); a927 = forever $ putStrLn "a927"-a928 :: IO (); a928 = forever $ putStrLn "a928"-a929 :: IO (); a929 = forever $ putStrLn "a929"-a930 :: IO (); a930 = forever $ putStrLn "a930"-a931 :: IO (); a931 = forever $ putStrLn "a931"-a932 :: IO (); a932 = forever $ putStrLn "a932"-a933 :: IO (); a933 = forever $ putStrLn "a933"-a934 :: IO (); a934 = forever $ putStrLn "a934"-a935 :: IO (); a935 = forever $ putStrLn "a935"-a936 :: IO (); a936 = forever $ putStrLn "a936"-a937 :: IO (); a937 = forever $ putStrLn "a937"-a938 :: IO (); a938 = forever $ putStrLn "a938"-a939 :: IO (); a939 = forever $ putStrLn "a939"-a940 :: IO (); a940 = forever $ putStrLn "a940"-a941 :: IO (); a941 = forever $ putStrLn "a941"-a942 :: IO (); a942 = forever $ putStrLn "a942"-a943 :: IO (); a943 = forever $ putStrLn "a943"-a944 :: IO (); a944 = forever $ putStrLn "a944"-a945 :: IO (); a945 = forever $ putStrLn "a945"-a946 :: IO (); a946 = forever $ putStrLn "a946"-a947 :: IO (); a947 = forever $ putStrLn "a947"-a948 :: IO (); a948 = forever $ putStrLn "a948"-a949 :: IO (); a949 = forever $ putStrLn "a949"-a950 :: IO (); a950 = forever $ putStrLn "a950"-a951 :: IO (); a951 = forever $ putStrLn "a951"-a952 :: IO (); a952 = forever $ putStrLn "a952"-a953 :: IO (); a953 = forever $ putStrLn "a953"-a954 :: IO (); a954 = forever $ putStrLn "a954"-a955 :: IO (); a955 = forever $ putStrLn "a955"-a956 :: IO (); a956 = forever $ putStrLn "a956"-a957 :: IO (); a957 = forever $ putStrLn "a957"-a958 :: IO (); a958 = forever $ putStrLn "a958"-a959 :: IO (); a959 = forever $ putStrLn "a959"-a960 :: IO (); a960 = forever $ putStrLn "a960"-a961 :: IO (); a961 = forever $ putStrLn "a961"-a962 :: IO (); a962 = forever $ putStrLn "a962"-a963 :: IO (); a963 = forever $ putStrLn "a963"-a964 :: IO (); a964 = forever $ putStrLn "a964"-a965 :: IO (); a965 = forever $ putStrLn "a965"-a966 :: IO (); a966 = forever $ putStrLn "a966"-a967 :: IO (); a967 = forever $ putStrLn "a967"-a968 :: IO (); a968 = forever $ putStrLn "a968"-a969 :: IO (); a969 = forever $ putStrLn "a969"-a970 :: IO (); a970 = forever $ putStrLn "a970"-a971 :: IO (); a971 = forever $ putStrLn "a971"-a972 :: IO (); a972 = forever $ putStrLn "a972"-a973 :: IO (); a973 = forever $ putStrLn "a973"-a974 :: IO (); a974 = forever $ putStrLn "a974"-a975 :: IO (); a975 = forever $ putStrLn "a975"-a976 :: IO (); a976 = forever $ putStrLn "a976"-a977 :: IO (); a977 = forever $ putStrLn "a977"-a978 :: IO (); a978 = forever $ putStrLn "a978"-a979 :: IO (); a979 = forever $ putStrLn "a979"-a980 :: IO (); a980 = forever $ putStrLn "a980"-a981 :: IO (); a981 = forever $ putStrLn "a981"-a982 :: IO (); a982 = forever $ putStrLn "a982"-a983 :: IO (); a983 = forever $ putStrLn "a983"-a984 :: IO (); a984 = forever $ putStrLn "a984"-a985 :: IO (); a985 = forever $ putStrLn "a985"-a986 :: IO (); a986 = forever $ putStrLn "a986"-a987 :: IO (); a987 = forever $ putStrLn "a987"-a988 :: IO (); a988 = forever $ putStrLn "a988"-a989 :: IO (); a989 = forever $ putStrLn "a989"-a990 :: IO (); a990 = forever $ putStrLn "a990"-a991 :: IO (); a991 = forever $ putStrLn "a991"-a992 :: IO (); a992 = forever $ putStrLn "a992"-a993 :: IO (); a993 = forever $ putStrLn "a993"-a994 :: IO (); a994 = forever $ putStrLn "a994"-a995 :: IO (); a995 = forever $ putStrLn "a995"-a996 :: IO (); a996 = forever $ putStrLn "a996"-a997 :: IO (); a997 = forever $ putStrLn "a997"-a998 :: IO (); a998 = forever $ putStrLn "a998"-a999 :: IO (); a999 = forever $ putStrLn "a999"-a1000 :: IO (); a1000 = forever $ putStrLn "a1000"
− tests/examples/ghc8/T10384.hs
@@ -1,3 +0,0 @@-{-# LANGUAGE TemplateHaskell, RankNTypes, ScopedTypeVariables #-}-module A where-x = \(y :: forall a. a -> a) -> [|| y ||]
− tests/examples/ghc8/T10390.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE RankNTypes #-}--module T10390 where--class ApPair r where-  apPair :: (forall a . (ApPair a, Num a) => Maybe a) -> Maybe r--instance (ApPair a, ApPair b) => ApPair (a,b) where-  apPair = apPair'--apPair' :: (ApPair b, ApPair c)-        => (forall a . (Num a, ApPair a) => Maybe a) -> Maybe (b,c)-            -- NB constraints in a different order to apPair-apPair' f =  let (Just a) = apPair f-                 (Just b) = apPair f-          in Just $ (a, b)
− tests/examples/ghc8/T10398.hs
@@ -1,25 +0,0 @@-module Foo-(-  -- The reference to chunk2 should show up in the -ddump-parsed output.-  -- $chunk1-  -- $chunk2-  foo,-  -- $chunk3-  bar-)-where--{- $chunk1-This is chunk 1.--}--{- $chunk2-This is chunk 2.--}--{- $chunk3-This is chunk 3.--}--foo = 3-bar = 7
− tests/examples/ghc8/T10403.hs
@@ -1,27 +0,0 @@-{-# LANGUAGE PartialTypeSignatures #-}-{-# OPTIONS_GHC -fdefer-type-errors #-}-module T10403 where--data I a = I a-instance Functor I where-    fmap f (I a) = I (f a)--newtype B t a = B a-instance Functor (B t) where-    fmap f (B a) = B (f a)--newtype H f = H (f ())--h1 :: _ => _--- h :: Functor m => (a -> b) -> m a -> H m-h1 f b = (H . fmap (const ())) (fmap f b)--h2 :: _--- h2 :: Functor m => (a -> b) -> m a -> H m-h2 f b = (H . fmap (const ())) (fmap f b)--app1 :: H (B t)-app1 = h1 (H . I) (B ())--app2 :: H (B t)-app2 = h2 (H . I) (B ())
− tests/examples/ghc8/T10414.hs
@@ -1,38 +0,0 @@-{-# LANGUAGE MagicHash, UnboxedTuples #-}-import GHC.Exts-newtype Eval a = Eval {runEval :: State# RealWorld -> (# State# RealWorld, a #)}---- inline sequence ::  [Eval a] -> Eval [a]-well_sequenced ::  [Eval a] -> Eval [a]-well_sequenced = foldr cons nil where-  cons e es = Eval $ \s -> case runEval e s of-                       (# s', a #) -> case runEval es s' of-                         (# s'', as #) -> (# s'', a : as #)-  nil = Eval $ \s -> (# s, [] #)---- seemingly demonic use of spark#-ill_sequenced ::  [Eval a] -> Eval [a]-ill_sequenced  as = Eval $ spark# (case well_sequenced as of-             Eval f -> case f realWorld# of  (# _, a' #) -> a')---- 'parallelized' version of (show >=> show >=> show >=> show >=> show)-main :: IO ()-main = putStrLn ((layer . layer . layer . layer . layer) (:[]) 'y')-  where-  layer :: (Char -> String) -> (Char -> String)-  layer f = (\(Eval x) -> case x realWorld# of (# _, as #) -> concat as)-        . well_sequenced    -- [Eval String] -> Eval [String]-        . map ill_sequenced -- [[Eval Char]] -> [Eval String];-                            -- 'map well_sequenced' is fine-        . map (map (\x -> Eval $ \s -> (# s, x #))) -- wrap each Char in Eval-        . chunk'            -- String -> [String]-        . concatMap f-        . show              -- add single quotes--  chunk' ::  String -> [String]-  chunk' [] = []-  chunk' xs =  as : chunk' bs where (as,bs) = splitAt 3 xs--  -- this doesn't work:-  -- chunk (a:b:c:xs) = [a,b,c]:chunk xs-  -- chunk xs = [xs]
− tests/examples/ghc8/T10420.hs
@@ -1,10 +0,0 @@-module Main where--import T10420a--import RuleDefiningPlugin--{-# NOINLINE x #-}-x = "foo"--main = putStrLn (show x)
− tests/examples/ghc8/T10420a.hs
@@ -1,2 +0,0 @@-{-# OPTIONS_GHC -fplugin RuleDefiningPlugin #-}-module T10420a where
− tests/examples/ghc8/T10423.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE FlexibleInstances, TypeFamilies, MultiParamTypeClasses #-}--module T10423 where--class Monad m => Testable m a--newtype Prop m = MkProp (m Int)--instance (Monad m, m ~ n) => Testable n (Prop m)
− tests/examples/ghc8/T10428.hs
@@ -1,5 +0,0 @@-module T10428 where--import Data.Coerce-coerceNewtype :: (Coercible (o r) (n m' r)) => [o r] -> [n m' r]-coerceNewtype = coerce
− tests/examples/ghc8/T10438.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE PartialTypeSignatures #-}-{-# LANGUAGE TypeFamilies #-}-module T10438 where--foo f = g-  where g r = x-          where x :: _-                x = r
− tests/examples/ghc8/T10447.hs
@@ -1,41 +0,0 @@-{-# LANGUAGE DeriveFoldable, GADTs, StandaloneDeriving #-}-module Main where--class (a ~ Int) => Foo a-instance Foo Int--data A a where-  A1 :: Ord a            => a        -> A a-  A2 ::                     Int      -> A Int-  A3 :: b ~ Int          => b        -> A Int-  A4 :: a ~ Int          => Int      -> A a-  A5 :: a ~ Int          => a        -> A a-  A6 :: (a ~ b, b ~ Int) => Int -> b -> A a-  A7 :: Foo a            => Int -> a -> A a--deriving instance Foldable A--data HK f a where-  HK1 :: f a -> HK f (f a)-  HK2 :: f a -> HK f a--deriving instance Foldable f => Foldable (HK f)--one :: Int-one = 1--main :: IO ()-main = do-  mapM_ (print . foldr (+) one)-    [ A1 one-    , A2 one-    , A3 one-    , A4 one-    , A5 one-    , A6 one one-    , A7 one one-    ]-  mapM_ (print . foldr mappend Nothing)-    [ HK1 (Just "Hello")-    , HK2 (Just (Just "World"))-    ]
− tests/examples/ghc8/T10451.hs
@@ -1,38 +0,0 @@-{-# LANGUAGE ConstraintKinds #-}--module T10451 where--type S a = ( Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a )--type T a = ( Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a-           , Eq a, Eq a, Eq a, Eq a)-
− tests/examples/ghc8/T10460.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE GHCForeignImportPrim #-}-module T10460 where-import GHC.Exts--- don't link me!-foreign import prim "f" f :: Any -> Any
− tests/examples/ghc8/T10461.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE MagicHash, GHCForeignImportPrim #-}--module T10461 where-import GHC.Exts--foreign import prim cheneycopy :: Any -> Word#
− tests/examples/ghc8/T10463.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE ScopedTypeVariables, PartialTypeSignatures #-}--module T10463 where--f (x :: _) = x ++ ""
− tests/examples/ghc8/T10481.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE MagicHash #-}--import GHC.Exts-import Control.Exception--f :: ArithException -> Int#-f x = raise# (toException x)--main = print (I# (f Overflow))
− tests/examples/ghc8/T10482.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE BangPatterns #-}-{-# LANGUAGE TypeFamilies #-}-module T10482 where--data family Foo a-data instance Foo (a, b) = FooPair !(Foo a) !(Foo b)-newtype instance Foo Int = Foo Int--foo :: Foo ((Int, Int), Int) -> Int -> Int-foo !f k =-  if k == 0 then 0-  else if even k then foo f (k-1)-  else case f of-    FooPair (FooPair (Foo n) _) _ -> n
− tests/examples/ghc8/T10482a.hs
@@ -1,63 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-{-# OPTIONS_GHC -fno-unbox-small-strict-fields #-}-                -- Makes f2 a bit more challenging---- Tests inspired by Note [CPR examples] in DmdAnal, and Trac #10482--module Foo where---h :: Int -> Int -> Bool-h 0 y = y>0-h n y = h (n-1) y---- The main point: all of these functions can have the CPR property--------- f1 -------------- x is used strictly by h, so it'll be available--- unboxed before it is returned in the True branch--f1 :: Int -> Int-f1 x = case h x x of-        True  -> x-        False -> f1 (x-1)---------- f2 -------------- x is a strict field of MkT2, so we'll pass it unboxed--- to $wf2, so it's available unboxed.  This depends on--- the case expression analysing (a subcomponent of) one--- of the original arguments to the function, so it's--- a bit more delicate.--data T2 = MkT2 !Int Int--f2 :: T2 -> Int-f2 (MkT2 x y) | y>0       = f2 (MkT2 x (y-1))-              | y>1       = 1-              | otherwise = x---------- f3 -------------- h is strict in x, so x will be unboxed before it--- is rerturned in the otherwise case.--data T3 = MkT3 Int Int--f3 :: T3 -> Int-f3 (MkT3 x y) | h x y     = f3 (MkT3 x (y-1))-              | otherwise = x---------- f4 -------------- Just like f2, but MkT4 can't unbox its strict--- argument automatically, as f2 can--data family Foo a-newtype instance Foo Int = Foo Int--data T4 a = MkT4 !(Foo a) Int--f4 :: T4 Int -> Int-f4 (MkT4 x@(Foo v) y) | y>0       = f4 (MkT4 x (y-1))-                      | otherwise = v
− tests/examples/ghc8/T10487.hs
@@ -1,12 +0,0 @@-{-# LANGUAGE StandaloneDeriving, DeriveGeneric #-}--module T10487 where--import GHC.Generics--import qualified T10487_M as M--data Name = Name--deriving instance Generic Name-deriving instance Generic M.Name
− tests/examples/ghc8/T10487_M.hs
@@ -1,3 +0,0 @@-module T10487_M where--data Name = Name
− tests/examples/ghc8/T10489.hs
@@ -1,4 +0,0 @@-module T10489 where---- Triggered an ASSERT in a debug build at some point.-convert d = let d' = case d of '0' -> '!' in d'
− tests/examples/ghc8/T10493.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}--module T10493 where--import Data.Coerce-import Data.Ord (Down)  -- no constructor--foo :: Coercible (Down Int) Int => Down Int -> Int-foo = coerce
− tests/examples/ghc8/T10494.hs
@@ -1,6 +0,0 @@-module App where--import Data.Coerce--foo :: Coercible (a b) (c d) => a b -> c d-foo = coerce
− tests/examples/ghc8/T10495.hs
@@ -1,5 +0,0 @@-module T10495 where--import Data.Coerce--foo = coerce
− tests/examples/ghc8/T10503.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE RankNTypes, PolyKinds, DataKinds, TypeFamilies #-}-module GHCBug where--data Proxy p = Proxy--data KProxy (a :: *) = KProxy--h :: forall r . (Proxy ('KProxy :: KProxy k) ~ Proxy ('KProxy :: KProxy *) => r) -> r-h = undefined
− tests/examples/ghc8/T10507.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE EmptyDataDecls #-}-{-# LANGUAGE ExplicitNamespaces #-}-{-# LANGUAGE GADTs #-}-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE TypeOperators #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}-module T10507 where--import Data.Type.Equality ( (:~:)(Refl) )-import Prelude (Maybe(..), undefined)-import GHC.TypeLits ( Nat, type (<=))--data V (n::Nat)--testEq :: (m <= n) => V m -> V n -> Maybe (m :~: n)-testEq = undefined---uext :: (1 <= m, m <= n) => V m -> V n -> V n-uext e w =-  case testEq e w of-    Just Refl -> e
− tests/examples/ghc8/T10508_api.hs
@@ -1,32 +0,0 @@-module Main where--import DynFlags-import GHC--import Control.Monad (forM_)-import Control.Monad.IO.Class (liftIO)-import System.Environment (getArgs)--main :: IO ()-main = do-  [libdir] <- getArgs-  runGhc (Just libdir) $ do-    dflags <- getSessionDynFlags-    setSessionDynFlags $ dflags-      `gopt_unset` Opt_ImplicitImportQualified-      `xopt_unset` Opt_ImplicitPrelude--    forM_ exprs $ \expr ->-      handleSourceError printException $ do-        dyn <- dynCompileExpr expr-        liftIO $ print dyn-  where-  exprs =-    [ ""-    , "(),()"-    , "()"-    , "\"test\""-    , unlines [ "[()]"-              , " :: [()]"-              ]-    ]
− tests/examples/ghc8/T10516.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE PolyKinds #-}-module T10516 where--type App f a = f a--newtype X f a = X (f a)--f :: f a -> X (App f) a-f = X
− tests/examples/ghc8/T10519.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE ExplicitForAll #-}-{-# LANGUAGE PartialTypeSignatures #-}-module T10519 where--foo :: forall a. _ => a -> a -> Bool-foo x y = x == y
− tests/examples/ghc8/T10521.hs
@@ -1,11 +0,0 @@-import Data.Word( Word8 )--toV :: Float -> Word8-toV d = let coeff = significand d *  255.9999 / d-            a = truncate $ d * coeff-            b = exponent d-        in a `seq` (b `seq` a)--main :: IO ()-main =-  print $ map toV [ 3.56158e-2, 0.7415215, 0.5383201, 0.1289829, 0.45520145 ]
− tests/examples/ghc8/T10521b.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE MagicHash #-}--import GHC.Exts--f :: Float# -> Float#-f x = x-{-# NOINLINE f #-}--g :: Double# -> Double#-g x = x-{-# NOINLINE g #-}--h :: Float -> Float-h (F# x) = let a = F# (f x)-               b = D# (g (2.0##))-           in a `seq` (b `seq` a)--main = print (h 1.0)
− tests/examples/ghc8/T10524.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE PolyKinds #-}-module T10524 where--import Data.Data--newtype WrappedFunctor f a = WrapFunctor (f a) deriving (Data, Typeable)---- WrappedFunctor :: forall k. (k -> *) -> k -> *
− tests/examples/ghc8/T10534.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE TypeFamilies #-}--module T10534 where--import T10534a--newtype instance DF a = MkDF ()--unsafeCoerce :: a -> b-unsafeCoerce = silly
− tests/examples/ghc8/T10534a.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE TypeFamilies, FlexibleContexts #-}--module T10534a where--import Data.Coerce--data family DF a--silly :: Coercible (DF a) (DF b) => a -> b-silly = coerce
− tests/examples/ghc8/T10549.hs
@@ -1,15 +0,0 @@-{-# OPTIONS_GHC -O2 #-}---- Verify that -O2 is rejected when this module is loaded by GHCi-module T10549 where--import qualified Data.ByteString.Internal as Internal-import System.IO.Unsafe (unsafePerformIO)-import Data.Word (Word8)-import Foreign.Ptr (Ptr)-import Foreign.Storable (peek)--type S = Ptr Word8--chr :: S -> Char-chr x = Internal.w2c $ unsafePerformIO $ peek x
− tests/examples/ghc8/T10549a.hs
@@ -1,5 +0,0 @@-{-# OPTIONS_GHC -O #-}-module Main(main) where-import GHC.Exts-main = print 1-go (Ptr a) = a
− tests/examples/ghc8/T10561.hs
@@ -1,19 +0,0 @@-{-# LANGUAGE PolyKinds, DeriveFunctor, RankNTypes #-}--module T10561 where---- Ultimately this should "Just Work",--- but in GHC 7.10 it gave a Lint failure--- For now (HEAD, Jun 2015) it gives a kind error message,--- which is better than a crash--newtype Compose f g a = Compose (f (g a)) deriving Functor--{--instance forall   (f_ant :: k_ans -> *)-                  (g_anu :: * -> k_ans).-           (Functor f_ant, Functor g_anu) =>-             Functor (Compose f_ant g_anu) where-    fmap f_anv (T10561.Compose a1_anw)-      = Compose (fmap (fmap f_anv) a1_anw)--}
− tests/examples/ghc8/T10562.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE GADTs, TypeFamilies #-}-module T10562 where--type family Flip a--data QueryRep qtyp a where-    QAtom :: a -> QueryRep () a-    QOp   :: QueryRep (Flip qtyp) a -> QueryRep qtyp a--instance Eq (QueryRep qtyp a) where-  (==) = error "urk"--instance (Ord a) => Ord (QueryRep qtyp a) where-  compare (QOp a) (QOp b) = a `compare` b
− tests/examples/ghc8/T10564.hs
@@ -1,20 +0,0 @@-{-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances,-             DataKinds, TypeFamilies, KindSignatures, PolyKinds, FunctionalDependencies #-}--module T10564 where--class HasFieldM (l :: k) r (v :: Maybe *)-        | l r -> v--class HasFieldM1 (b :: Maybe [*]) (l :: k) r v-        | b l r -> v--class HMemberM (e1 :: k) (l :: [k]) (r :: Maybe [k])-        | e1 l -> r--data Label a-type family LabelsOf (a :: [*]) ::  [*]--instance (HMemberM (Label (l::k)) (LabelsOf xs) b,-            HasFieldM1 b l (r xs) v)-         => HasFieldM l (r xs) v where
− tests/examples/ghc8/T10570.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE FunctionalDependencies, PolyKinds, FlexibleInstances #-}--module T10570 where--import Data.Proxy--class ConsByIdx2 x a m cls | x -> m where-    consByIdx2 :: x -> a -> m cls--instance ConsByIdx2 Int a Proxy cls where-    consByIdx2 _ _ = Proxy
− tests/examples/ghc8/T10590.hs
@@ -1,37 +0,0 @@-import Foreign.C-import Foreign.Marshal.Array-import Foreign.Storable-import Control.Concurrent---- The test works only on UNIX like.--- unportable bits:-import qualified System.Posix.Internals as SPI-import qualified System.Posix.Types as SPT--pipe :: IO (CInt, CInt)-pipe = allocaArray 2 $ \fds -> do-    throwErrnoIfMinus1_ "pipe" $ SPI.c_pipe fds-    rd <- peekElemOff fds 0-    wr <- peekElemOff fds 1-    return (rd, wr)--main :: IO ()-main = do-    (r1, w1)  <- pipe-    (r2, _w2) <- pipe-    _ <- forkIO $ do -- thread A-                     threadWaitRead (SPT.Fd r1)-    _ <- forkIO $ do -- thread B-                     threadWaitRead (SPT.Fd r2)-    yield -- switch to A, then B-          -- now both are blocked-    _ <- SPI.c_close w1 -- unblocking thread A fd-    _ <- SPI.c_close r2 -- breaking   thread B fd-    yield -- kick RTS IO manager--{-- Trac #10590 exposed a bug as:-   T10590: internal error: removeThreadFromDeQueue: not found-    (GHC version 7.11.20150702 for x86_64_unknown_linux)-    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug- -}
− tests/examples/ghc8/T10596.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module T10596 where-import Language.Haskell.TH-import Language.Haskell.TH.Syntax-import System.IO--do-  putQ (100 :: Int)-  x <- (getQ :: Q (Maybe Int))--  -- It should print "Just 100"-  runIO $ print x-  runIO $ hFlush stdout-  return []
− tests/examples/ghc8/T10602.hs
@@ -1,26 +0,0 @@-{-# OPTIONS_GHC -O2 #-}-{-# OPTIONS_GHC -fno-warn-missing-methods #-}-{-# LANGUAGE NoImplicitPrelude #-}--- {-# OPTIONS_GHC -fno-spec-constr #-} -- Makes the problem go away.--- {-# OPTIONS_GHC -fspec-constr-count=1 #-} -- Makes the problem go away.--module T10602 where---- Copy-pasting T10602b.hs into the current module makes the problem go away.-import T10602b--data PairS a = PairS a a---- Removing the '~' makes the problem go away.-(PairS _ _) >> ~(PairS b g) = PairS b g--class Binary t where-    put :: t -> PairS ()---- Not using a newtype makes the problem go away.-newtype A a = A [a]--instance Binary a => Binary (A a) where-    put (A xs) = case splitAt 254 xs of-        (_, []) -> foldr (>>) (PairS () ()) (map put xs)-        (_, b)  -> put (A b)
− tests/examples/ghc8/T10602b.hs
@@ -1,20 +0,0 @@-{-# OPTIONS_GHC -O2 #-}-{-# LANGUAGE NoImplicitPrelude #-}-module T10602b (splitAt, map, foldr) where--import GHC.Classes-import GHC.Types-import GHC.Num-import GHC.Base--splitAt                :: Int -> [a] -> ([a],[a])-splitAt n ls-  | n <= 0 = ([], ls)-  | otherwise          = splitAt' n ls-    where-        splitAt' :: Int -> [a] -> ([a], [a])-        splitAt' _  []     = ([], [])-        splitAt' 1  (x:xs) = ([x], xs)-        splitAt' m  (x:xs) = (x:xs', xs'')-          where-            (xs', xs'') = splitAt' (m - 1) xs
− tests/examples/ghc8/T10615.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE RankNTypes #-}-module T10615 where--f1 :: _ -> f-f1 = const--f2 :: _ -> _f-f2 = const
− tests/examples/ghc8/T10618.hs
@@ -1,3 +0,0 @@-module T10618 where--foo = Just $ Nothing <> Nothing
− tests/examples/ghc8/T10620.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE MagicHash, TemplateHaskell #-}-module Main where--import Language.Haskell.TH--main :: IO ()-main = do-    putStrLn $([| 'a'#   |] >>= stringE . show)-    putStrLn $([| "abc"# |] >>= stringE . show)
− tests/examples/ghc8/T10627.hs
@@ -1,17 +0,0 @@--- Made GHC 6.10.2 go into a loop in substRecBndrs-{-# OPTIONS_GHC -w #-}--module T10627 where--import Data.Word--class C a where-    splitFraction    :: a -> (b,a)--roundSimple :: (C a) => a -> b-roundSimple x = error "rik"--{-# RULES-     "rs"  roundSimple = (fromIntegral :: Int -> Word) . roundSimple;-  #-}-
− tests/examples/ghc8/T10632.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE ImplicitParams #-}--f :: (?file1 :: String) => IO ()-f = putStrLn $ "f2: "--main :: IO ()-main = let ?file1 = "A" in f
− tests/examples/ghc8/T10634.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module T10634 where--import Data.Int (Int8, Int16, Int32)--type family Up a-type instance Up Int8  = Int16-type instance Up Int16 = Int32--class (Up (Down a) ~ a) => Convert a where-   type Down a-   down :: a -> Down a--instance Convert Int16 where-   type Down Int16 = Int8-   down = fromIntegral--instance Convert Int32 where-   type Down Int32 = Int16-   down = fromIntegral--x :: Int8-x = down 8
− tests/examples/ghc8/T10637.hs
@@ -1,4 +0,0 @@-module T10637 where--import {-# SOURCE #-} A ()-data B = B
− tests/examples/ghc8/T10638.hs
@@ -1,32 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE GHCForeignImportPrim, UnliftedFFITypes, QuasiQuotes, MagicHash #-}--import Language.Haskell.TH-import Language.Haskell.TH.Syntax--import GHC.Exts--{--   the prim and javascript calling conventions do not support-   headers and the static keyword.--}---- check that quasiquoting roundtrips succesfully and that the declaration--- does not include the static keyword-test1 :: String-test1 = $(do (ds@[ForeignD (ImportF _ _ p _ _)]) <--               [d| foreign import prim "test1" cmm_test1 :: Int# -> Int# |]-             addTopDecls ds-             case p of-              "test1" -> return (LitE . stringL $ p)-              _       -> error $ "unexpected value: " ++ show p-         )---- check that constructed prim imports with the static keyword are rejected-test2 :: String-test2 = $(do t <- [t| Int# -> Int# |]-             cmm_test2 <- newName "cmm_test2"-             addTopDecls-               [ForeignD (ImportF Prim Safe "static test2" cmm_test2 t)]-             [| test1 |]-         )
− tests/examples/ghc8/T10642.hs
@@ -1,12 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module T10642 where--import Data.Coerce--type family F a--newtype D a = D (F a)---- | This works on 7.10.1, but fails on HEAD (20150711)-coerceD :: F a -> D a-coerceD = coerce
− tests/examples/ghc8/T10662.hs
@@ -1,4 +0,0 @@-main :: IO ()-main = do-  return $ let a = "hello" in a-  return ()
− tests/examples/ghc8/T10667.hs
@@ -1,6 +0,0 @@-module A where---- when used with '-g' debug generation option--- '*/*' leaked into a /* comment */ and broke--- GNU as.-x */* y = 42
− tests/examples/ghc8/T10668.hs
@@ -1,3 +0,0 @@-module T10668 where--import Data.Type.Equality(Refl)
− tests/examples/ghc8/T10670.hs
@@ -1,24 +0,0 @@-{-# LANGUAGE ScopedTypeVariables, RankNTypes, GADTs, PolyKinds #-}--module T10670 where--import Unsafe.Coerce--data TypeRepT (a::k) where-  TRCon :: TypeRepT a--data G2 c a where-  G2 :: TypeRepT a -> TypeRepT b -> G2 c (c a b)--getT2 :: TypeRepT (c :: k2 -> k1 -> k) -> TypeRepT (a :: k) -> Maybe (G2 c a)-{-# NOINLINE getT2 #-}-getT2 c t = Nothing--tyRepTArr :: TypeRepT (->)-{-# NOINLINE tyRepTArr #-}-tyRepTArr = TRCon--s :: forall a x. TypeRepT (a :: *) -> Maybe x-s tf = case getT2 tyRepTArr tf :: Maybe (G2 (->) a) of-          Just (G2 _ _) -> Nothing-          _ -> Nothing
− tests/examples/ghc8/T10670a.hs
@@ -1,54 +0,0 @@-{-# LANGUAGE GADTs , PolyKinds #-}--module Bug2 where--import Unsafe.Coerce--data TyConT (a::k) = TyConT String--eqTyConT :: TyConT a -> TyConT b -> Bool-eqTyConT (TyConT a) (TyConT b) = a == b----tyConTArr :: TyConT (->)-tyConTArr = TyConT "(->)"---data TypeRepT (a::k) where-  TRCon :: TyConT a -> TypeRepT a-  TRApp :: TypeRepT a -> TypeRepT b -> TypeRepT (a b)---data GetAppT a where-  GA :: TypeRepT a -> TypeRepT b -> GetAppT (a b)--getAppT :: TypeRepT a -> Maybe (GetAppT a)-getAppT (TRApp a b) = Just $ GA a b-getAppT _ = Nothing----eqTT :: TypeRepT (a::k1) -> TypeRepT (b::k2) -> Bool-eqTT (TRCon a) (TRCon b) = eqTyConT a b-eqTT (TRApp c a) (TRApp d b) = eqTT c d && eqTT a b-eqTT _ _ = False---data G2 c a where-  G2 :: TypeRepT a -> TypeRepT b -> G2 c (c a b)---getT2 :: TypeRepT (c :: k2 -> k1 -> k) -> TypeRepT (a :: k) -> Maybe (G2 c a)-getT2 c t = do GA t' b <- getAppT t-               GA c' a <- getAppT t'-               if eqTT c c'-                 then Just (unsafeCoerce $ G2 a b :: G2 c a)-                 else Nothing--tyRepTArr :: TypeRepT (->)-tyRepTArr = TRCon tyConTArr--s tf = case getT2 tyRepTArr tf-       of Just (G2 _ _) -> Nothing-          _ -> Nothing
− tests/examples/ghc8/T10678.hs
@@ -1,22 +0,0 @@-{-# LANGUAGE MagicHash #-}--import GHC.Prim--main :: IO ()-main = go 1000000# 10 (2^100)--go :: Int# -> Integer -> Integer -> IO ()-go 0# _ _ = return ()-go n# a b = (a + b) `seq` go (n# -# 1#) a b-{-# NOINLINE go #-}--{--This test is based on a strategy from rwbarton relying on the inefficiency-of `Integer` addition as defined by `integer-gmp` without `runRW#`.--    When I was testing the patch interactively, I measured allocations for,-    say, a million (large Integer) + (small Integer) additions.  If that-    addition allocates, say, 6 words, then one can fairly reliably write the-    program so that it will allocate between 6 million and 7 million words,-    total.--}
− tests/examples/ghc8/T10689.hs
@@ -1,11 +0,0 @@-module T10694 where--f :: Eq a => a -> Bool-{-# NOINLINE f #-}-f x = x==x--type Foo a b = b--{-# RULES "foo" forall (x :: Foo a Char). f x = True #-}--finkle = f 'c'
− tests/examples/ghc8/T10689a.hs
@@ -1,114 +0,0 @@-{-# LANGUAGE TypeOperators-           , DataKinds-           , PolyKinds-           , TypeFamilies-           , GADTs-           , UndecidableInstances-           , RankNTypes-           , ScopedTypeVariables-  #-}--{-# OPTIONS_GHC -Wall #-}-{-# OPTIONS_GHC -Werror #-}-{-# OPTIONS_GHC -O1 -fspec-constr #-}--{--ghc-stage2: panic! (the 'impossible' happened)-  (GHC version 7.11.20150723 for x86_64-unknown-linux):-        Template variable unbound in rewrite rule--}--module List (sFoldr1) where--data Proxy t--data family Sing (a :: k)--data TyFun (a :: *) (b :: *)--type family Apply (f :: TyFun k1 k2 -> *) (x :: k1) :: k2--data instance Sing (f :: TyFun k1 k2 -> *) =-  SLambda { applySing :: forall t. Sing t -> Sing (Apply f t) }--type SingFunction1 f = forall t. Sing t -> Sing (Apply f t)--type SingFunction2 f = forall t. Sing t -> SingFunction1 (Apply f t)-singFun2 :: Proxy f -> SingFunction2 f -> Sing f-singFun2 _ f = SLambda (\x -> SLambda (f x))--data (:$$) (j :: a) (i :: TyFun [a] [a])-type instance Apply ((:$$) j) i = (:) j i--data (:$) (l :: TyFun a (TyFun [a] [a] -> *))-type instance Apply (:$) l = (:$$) l-data instance Sing (z :: [a])-  = z ~ '[] =>-    SNil-  | forall (m :: a)-           (n :: [a]). z ~ (:) m n =>-    SCons (Sing m) (Sing n)--data ErrorSym0 (t1 :: TyFun k1 k2)--type Let1627448493XsSym4 t_afee t_afef t_afeg t_afeh = Let1627448493Xs t_afee t_afef t_afeg t_afeh--type Let1627448493Xs f_afe9-                     x_afea-                     wild_1627448474_afeb-                     wild_1627448476_afec =-    Apply (Apply (:$) wild_1627448474_afeb) wild_1627448476_afec-type Foldr1Sym2 (t_afdY :: TyFun a_afdP (TyFun a_afdP a_afdP -> *)-                           -> *)-                (t_afdZ :: [a_afdP]) =-    Foldr1 t_afdY t_afdZ-data Foldr1Sym1 (l_afe3 :: TyFun a_afdP (TyFun a_afdP a_afdP -> *)-                           -> *)-                (l_afe2 :: TyFun [a_afdP] a_afdP)-type instance Apply (Foldr1Sym1 l_afe3) l_afe2 = Foldr1Sym2 l_afe3 l_afe2--data Foldr1Sym0 (l_afe0 :: TyFun (TyFun a_afdP (TyFun a_afdP a_afdP-                                                -> *)-                                  -> *) (TyFun [a_afdP] a_afdP -> *))-type instance Apply Foldr1Sym0 l = Foldr1Sym1 l--type family Foldr1 (a_afe5 :: TyFun a_afdP (TyFun a_afdP a_afdP-                                            -> *)-                              -> *)-                   (a_afe6 :: [a_afdP]) :: a_afdP where-  Foldr1 z_afe7 '[x_afe8] = x_afe8-  Foldr1 f_afe9 ((:) x_afea ((:) wild_1627448474_afeb wild_1627448476_afec)) = Apply (Apply f_afe9 x_afea) (Apply (Apply Foldr1Sym0 f_afe9) (Let1627448493XsSym4 f_afe9 x_afea wild_1627448474_afeb wild_1627448476_afec))-  Foldr1 z_afew '[] = Apply ErrorSym0 "Data.Singletons.List.foldr1: empty list"--sFoldr1 ::-  forall (x :: TyFun a_afdP (TyFun a_afdP a_afdP -> *) -> *)-         (y :: [a_afdP]).-  Sing x-  -> Sing y -> Sing (Apply (Apply Foldr1Sym0 x) y)-sFoldr1 _ (SCons _sX SNil) = undefined-sFoldr1 sF (SCons sX (SCons sWild_1627448474 sWild_1627448476))-  = let-      lambda_afeC ::-        forall f_afe9 x_afea wild_1627448474_afeb wild_1627448476_afec.-        Sing f_afe9-        -> Sing x_afea-           -> Sing wild_1627448474_afeb-              -> Sing wild_1627448476_afec-                 -> Sing (Apply (Apply Foldr1Sym0 f_afe9) (Apply (Apply (:$) x_afea) (Apply (Apply (:$) wild_1627448474_afeb) wild_1627448476_afec)))-      lambda_afeC f_afeD x_afeE wild_1627448474_afeF wild_1627448476_afeG-        = let-            sXs ::-              Sing (Let1627448493XsSym4 f_afe9 x_afea wild_1627448474_afeb wild_1627448476_afec)-            sXs-              = applySing-                  (applySing-                     (singFun2 (undefined :: Proxy (:$)) SCons) wild_1627448474_afeF)-                  wild_1627448476_afeG-          in-            applySing-              (applySing f_afeD x_afeE)-              (applySing-                 (applySing (singFun2 (undefined :: Proxy Foldr1Sym0) sFoldr1) f_afeD)-                 sXs)-    in lambda_afeC sF sX sWild_1627448474 sWild_1627448476-sFoldr1 _ SNil = undefined
− tests/examples/ghc8/T10694.hs
@@ -1,16 +0,0 @@-module T10694 where---- The point here is that 'm' should NOT have the CPR property--- Checked by grepping in the -ddump-simpl----- Some nonsense so that the simplifier can't see through--- to the I# constructor-pm :: Int -> Int -> (Int, Int)-pm x y = (l !! 0, l !! 1)-  where l = [x+y, x-y]-{-# NOINLINE pm #-}--m :: Int -> Int -> Int-m x y = case pm x y of-  (pr, mr) -> mr
− tests/examples/ghc8/T10698.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE RoleAnnotations #-}--module T10698 where-import Data.Coerce--data Map k a  = Map k a-type role Map nominal representational--map1 :: (k1->k2) -> Map k1 a -> Map k2 a-map1 f (Map a b) = Map (f a) b-{-# NOINLINE  [1] map1 #-}-{-# RULES-"map1/coerce" map1 coerce = coerce- #-}---map2 :: (a -> b) -> Map k a -> Map k b-map2 f (Map a b) = Map a (f b)-{-# NOINLINE [1] map2 #-}--{-# RULES-"map2/coerce" map2 coerce = coerce- #-}
− tests/examples/ghc8/T10704.hs
@@ -1,24 +0,0 @@-{-# LANGUAGE MagicHash, TemplateHaskell #-}-module Main where--import GHC.Exts-import T10704a--main :: IO ()-main = do-  putStrLn $(fixityExp ''(->))-  putStrLn $(fixityExp ''Show)-  putStrLn $(fixityExp 'show)-  putStrLn $(fixityExp '(+))-  putStrLn $(fixityExp ''Int)-  putStrLn $(fixityExp ''Item)-  putStrLn $(fixityExp ''Char#)-  putStrLn $(fixityExp 'Just)-  putStrLn $(fixityExp 'seq)-  putStrLn $(fixityExp '($))-  putStrLn $(fixityExp ''(:=>))-  putStrLn $(fixityExp ''(:+:))-  putStrLn $(fixityExp ''(:*:))-  putStrLn $(fixityExp ''(:%:))-  putStrLn $(fixityExp ''(:?:))-  putStrLn $(fixityExp ''(:@:))
− tests/examples/ghc8/T10704a.hs
@@ -1,21 +0,0 @@-{-# LANGUAGE MultiParamTypeClasses, TypeFamilies, TypeOperators #-}-module T10704a where--import Language.Haskell.TH--infixl 1 :=>-infixl 2 :+:-infix  3 :*:-infix  4 :%:-infixr 5 :?:-infixr 6 :@:--class a :=> b-type a :+: b = Either a b-data a :*: b = a :*: b-newtype a :%: b = Percent (a, b)-data family a :?: b-type family a :@: b where a :@: b = Int--fixityExp :: Name -> Q Exp-fixityExp n = reifyFixity n >>= stringE . show
− tests/examples/ghc8/T10713.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE TypeFamilies, PolyKinds, DataKinds #-}--module T10713 where--import Data.Proxy--type family TEq t s where-  TEq t t = 'True-  TEq t s = 'False-data family T a--foo :: Proxy (TEq (T Int) (T Bool)) -> Proxy 'False-foo = id
− tests/examples/ghc8/T10734.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module Main where--import Language.Haskell.TH--main :: IO ()-main = do-  pprint <$> runQ [| do { let { }; return (); } |]             >>= putStrLn-  pprint <$> runQ [| do { let { x = 5 }; return x; } |]        >>= putStrLn-  pprint <$> runQ [| do { let { x = 5; y = 3 }; return x; } |] >>= putStrLn
− tests/examples/ghc8/T10742.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE GADTs #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeOperators #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}--module T10742 where--import GHC.TypeLits--data T a where MkT :: T Int--test :: ((x <=? y) ~ 'True, (y <=? z) ~ 'True)-     => proxy x y z -> ()-test _ = case MkT of MkT -> ()
− tests/examples/ghc8/T10744.hs
@@ -1,17 +0,0 @@-{-# LANGUAGE MagicHash #-}-module T10744 where--import GHC.Exts-import GHC.Magic---- Checks if oneShot is open-kinded--f0 :: Int -> Int-f0 = oneShot $ \n -> n--f1 :: Int# -> Int-f1 = oneShot $ \n# -> I# n#--f2 :: Int -> Int#-f2 = oneShot $ \(I# n#) -> n#-
− tests/examples/ghc8/T10747.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}--module T10747 where--pattern head `Cons` tail = head : tail
− tests/examples/ghc8/T10753.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE TypeFamilies, MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances #-}-{-# LANGUAGE KindSignatures #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints -fno-warn-missing-methods #-}-module T10753 where---class MonadState s m | m -> s where-  get :: m s--newtype StateT s m a = StateT { runStateT :: s -> m (a,s) }-instance (Monad m) => Monad (StateT s m) where-instance (Functor m, Monad m) => Applicative (StateT s m) where-instance (Functor m) => Functor (StateT s m) where--instance (Monad m) => MonadState s (StateT s m) where--class HasConns (m :: * -> *) where-    type Conn m--foo :: (Monad m) => StateT (Conn m) m ()-foo =-    do _ <- get-       return ()
− tests/examples/ghc8/T10767.hs
@@ -1,48 +0,0 @@-{-# LANGUAGE ScopedTypeVariables, TypeFamilies #-}--module Main where--{- ghc-7.8.4 and ghc-7.10.2 showed a confusing warning:--T10767.hs:43:1: Warning:-    RULE left-hand side too complicated to desugar-      Optimised lhs: case cobox_aWY-                     of _ [Occ=Dead] { GHC.Types.Eq# cobox ->-                     genLength @ Int $dSpecList_aWX-                     }-      Orig lhs: case cobox_aWY of cobox_aWY { GHC.Types.Eq# cobox ->-                genLength @ Int $dSpecList_aWX-                }--}--import Data.Proxy--class SpecList a where-    type List a :: *--    slCase      :: List a -> b -> (a -> List a -> b) -> b--data IntList-  = ILNil-  | ILCons {-# UNPACK #-} !Int IntList-  deriving (Show)--instance SpecList Int where-  type List Int = IntList--  slCase ILNil        n _  = n-  slCase (ILCons i t) _ c  = c i t--fromList :: [Int] -> IntList-fromList []      = ILNil-fromList (h : t) = ILCons h (fromList t)--lst1 :: IntList-lst1 = fromList [1..10]--{-# SPECIALIZE genLength :: Proxy Int -> List Int -> Int #-}-genLength :: forall a . SpecList a => Proxy a -> List a -> Int-genLength p lst = slCase lst 0 (\(_ :: a) tail -> 1 + genLength p tail)--main :: IO ()-main = print (genLength (Proxy :: Proxy Int) lst1)
− tests/examples/ghc8/T10781.hs
@@ -1,12 +0,0 @@-module T10781 where-{- ghc-7.10.2 reported:--T10781.hs:6:5:-    Found hole ‘_name’ with type: t-    Where: ‘t’ is a rigid type variable bound by-               the inferred type of f :: t at T10781.hs:6:1-    Relevant bindings include f :: t (bound at T10781.hs:6:1)-    In the expression: Foo._name-    In an equation for ‘f’: f = Foo._name--}-f = Foo._name
− tests/examples/ghc8/T10796a.hs
@@ -1,15 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module T10796a where--import Data.Ratio-import Data.Set (Set, fromList)-import Language.Haskell.TH.Syntax (liftData)---- Data instance with toConstr implemented using a variable,--- not a data constructor-splicedSet :: Set Char-splicedSet = $(liftData (fromList "test"))---- Infix data constructor-splicedRatio :: Ratio Int-splicedRatio = $(liftData (1 % 2 :: Ratio Int))
− tests/examples/ghc8/T10796b.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-module T10796b where--import Data.Set (Set, fromList)-import Language.Haskell.TH.Quote (dataToPatQ)--badPattern :: Set Char -> Set Char-badPattern s@($(dataToPatQ (const Nothing) (fromList "test"))) = s
− tests/examples/ghc8/T10806.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE GADTs, ExplicitNamespaces, TypeOperators, DataKinds  #-}--module T10806 where--import GHC.TypeLits (Nat, type (<=))--data Q a where-    Q :: (a <= b, b <= c) => proxy a -> proxy b -> Q c--triggersLoop :: Q b -> Q b -> Bool-triggersLoop (Q _ _) (Q _ _) = print 'x' 'y'
− tests/examples/ghc8/T10815.hs
@@ -1,15 +0,0 @@-{-# LANGUAGE DataKinds, PolyKinds, TypeFamilies #-}--module T10815 where--import Data.Proxy--type family Any :: k--class kproxy ~ 'KProxy => C (kproxy :: KProxy k) where-  type F (a :: k)-  type G a :: k--instance C ('KProxy :: KProxy Bool) where-  type F a = Int-  type G a = Any
− tests/examples/ghc8/T10819.hs
@@ -1,26 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE FunctionalDependencies #-}-{-# LANGUAGE GeneralizedNewtypeDeriving #-}-{-# LANGUAGE MultiParamTypeClasses #-}--module T10819 where--import T10819_Lib--import Language.Haskell.TH.Syntax--class C a b | b -> a where-  f :: b -> a--data D = X--instance C Int D where-  f X = 2--$(doSomeTH "N" (mkName "D") [ConT (mkName "C") `AppT` ConT (mkName "Int")])--thing :: N-thing = N X--thing1 :: Int-thing1 = f thing
− tests/examples/ghc8/T10819_Lib.hs
@@ -1,7 +0,0 @@-module T10819_Lib where--import Language.Haskell.TH.Syntax--doSomeTH s tp drv = return [NewtypeD [] n [] Nothing (NormalC n-    [(Bang NoSourceUnpackedness NoSourceStrictness, ConT tp)]) drv]-  where n = mkName s
− tests/examples/ghc8/T10820.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE LiberalTypeSynonyms #-}-{-# LANGUAGE RankNTypes #-}-{-# LANGUAGE TemplateHaskell #-}-{-# LANGUAGE MagicHash #-}--module Main where--import Language.Haskell.TH.Syntax-import GHC.LanguageExtensions--main = do-  print $(isExtEnabled Cpp                  >>= lift)-  print $(isExtEnabled LiberalTypeSynonyms  >>= lift)-  print $(isExtEnabled RankNTypes           >>= lift)-  print $(isExtEnabled TypeSynonymInstances >>= lift)-  print $(isExtEnabled MagicHash            >>= lift)
− tests/examples/ghc8/T10826.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE Safe #-}-module Test (hook) where--import System.IO.Unsafe--{-# ANN hook (unsafePerformIO (putStrLn "Woops.")) #-}-hook = undefined
− tests/examples/ghc8/T10830.hs
@@ -1,3 +0,0 @@-import GHC.OldList-main :: IO ()-main = maximumBy compare [1..10000] `seq` return ()
− tests/examples/ghc8/T10836.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module T10836 where--type family Foo a = r | r -> a where-    Foo Int  = Int-    Foo Bool = Int--type family Bar a = r | r -> a where-    Bar Int  = Int-    Bar Bool = Int
− tests/examples/ghc8/T10845.hs
@@ -1,20 +0,0 @@-{-# LANGUAGE ImplicitParams #-}-{-# OPTIONS_GHC -dcore-lint #-}--import GHC.Stack--f1 :: (?loc :: CallStack) => CallStack--- we can infer a CallStack for let-binders-f1 = let y x = (?loc :: CallStack)-     in y 0--f2 :: (?loc :: CallStack) => CallStack--- but only when we would infer an IP.--- i.e. the monomorphism restriction prevents us--- from inferring a CallStack.-f2 = let y = (?loc :: CallStack)-     in y--main :: IO ()-main = do putStrLn $ prettyCallStack f1-          putStrLn $ prettyCallStack f2
− tests/examples/ghc8/T10846.hs
@@ -1,20 +0,0 @@-{-# LANGUAGE ImplicitParams, PartialTypeSignatures #-}--module Main where--import GHC.Stack--f1 :: (?loc :: CallStack) => String-f1 = show $ map (srcLocStartLine . snd) $ getCallStack ?loc--f2 :: (?loc :: CallStack) => _-f2 = show $ map (srcLocStartLine . snd) $ getCallStack ?loc--f3 :: (?loc :: CallStack, _) => String-f3 = show $ map (srcLocStartLine . snd) $ getCallStack ?loc--main :: IO ()-main = do-  putStrLn f1-  putStrLn f2-  putStrLn f3
− tests/examples/ghc8/T10870.hs
@@ -1,12 +0,0 @@-import Data.Bits-import Data.Int-import Data.Word--unsafeShift32R :: (Bits a, Num a) => a -> a-unsafeShift32R x = unsafeShiftR x 32--main :: IO ()-main = do-    print $ map unsafeShift32R [ 123456, 0x7fffffff :: Int ]-    print $ map unsafeShift32R [ -123456, -0x80000000 :: Int ]-    print $ map unsafeShift32R [ 123456, 0xffffffff :: Word ]
− tests/examples/ghc8/T10890.hs
@@ -1,23 +0,0 @@-module Main where---- Previously GHC was printing this warning:------   Main.hs:5:1: Warning:---       The import of ‘A.has’ from module ‘A’ is redundant------   Main.hs:6:1: Warning:---       The import of ‘B.has’ from module ‘B’ is redundant--import A (A (has))-import B (B (has))--data Blah = Blah--instance A Blah where-  has = Blah--instance B Blah where-  has = Blah--main :: IO ()-main = return ()
− tests/examples/ghc8/T10890_1.hs
@@ -1,22 +0,0 @@-module Main where--import Base-import Extends---- Previously GHC was giving this false positive:------   T10890_1.hs:4:1: Warning:---       The import of ‘Extends’ is redundant---         except perhaps to import instances from ‘Extends’---       To import instances alone, use: import Extends()--data Bar = Bar--instance AClass Bar where-  has = Bar--instance BClass Bar where-  has = Bar--main :: IO ()-main = return ()
− tests/examples/ghc8/T10890_2.hs
@@ -1,17 +0,0 @@-module T10890_2 where---- Previously GHC was printing this warning:------   Main.hs:5:1: Warning:---       The import of ‘A.has’ from module ‘A’ is redundant------   Main.hs:6:1: Warning:---       The import of ‘B.has’ from module ‘B’ is redundant--import T10890_2A (A (has))-import T10890_2B (B (has))--data Blah = Blah--instance A Blah where-  has = Blah
− tests/examples/ghc8/T10890_2A.hs
@@ -1,4 +0,0 @@-module T10890_2A where--class A a where-  has :: a
− tests/examples/ghc8/T10890_2B.hs
@@ -1,4 +0,0 @@-module T10890_2B where--class B a where-  has :: a
− tests/examples/ghc8/T10891.hs
@@ -1,40 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE TemplateHaskell #-}--module T10891 where--import Language.Haskell.TH-import System.IO--class C a where-  f :: a -> Int--class C' a where-  type F a :: *-  type F a = a-  f' :: a -> Int--class C'' a where-  data Fd a :: *--instance C' Int where-  type F Int = Bool-  f' = id--instance C'' Int where-  data Fd Int = B Bool | C Char--$(return [])--test :: ()-test =-  $(let-      display :: Name -> Q ()-      display q = do-        i <- reify q-        runIO (hPutStrLn stderr (pprint i) >> hFlush stderr)-    in do-      display ''C-      display ''C'-      display ''C''-      [| () |])
− tests/examples/ghc8/T10895.hs
@@ -1,1 +0,0 @@-module NotMain where
− tests/examples/ghc8/T10897a.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module T10897a where-pattern Single :: a -> a-pattern Single x = x
− tests/examples/ghc8/T10897b.hs
@@ -1,4 +0,0 @@-module B where-import T10897a--Single y = True
− tests/examples/ghc8/T10904.hs
@@ -1,28 +0,0 @@-import Control.Concurrent-import Control.Monad-import Foreign-import Foreign.C.Types-import System.Environment---foreign import ccall safe "finalizerlib.h init_value"-    init_value :: Ptr CInt -> IO ()--foreign import ccall safe "finalizerlib.h &finalize_value"-    finalize_value :: FinalizerPtr CInt---allocateValue :: IO ()-allocateValue = do-    fp <- mallocForeignPtrBytes 10000-    withForeignPtr fp init_value-    addForeignPtrFinalizer finalize_value fp---main :: IO ()-main = do-    [n] <- fmap (fmap read) getArgs-    _ <- forkIO (loop n)-    loop n-  where-    loop n = replicateM_ n allocateValue
− tests/examples/ghc8/T10908.hs
@@ -1,10 +0,0 @@-{-# OPTIONS_GHC -fwarn-missing-exported-sigs #-}--module Bug (Data.List.intercalate, x) where--import qualified Data.List--intercalate = True--x :: Bool-x = intercalate
− tests/examples/ghc8/T10929.hs
@@ -1,31 +0,0 @@-module T10929 where--x1 :: [Integer]-x1 = [5 .. 3]--x2 :: [Integer]-x2 = [3 .. 5]--x3 :: [Integer]-x3 = [5, 3 .. 1]--x4 :: [Integer]-x4 = [5, (3+0) .. 1]--x5 :: [Integer]-x5 = [1, 3 .. 5]--x6 :: [Integer]-x6 = [1, (3+0) .. 5]--x7 :: [Integer]-x7 = [5, 7 .. 1]--x8 :: [Integer]-x8 = [5, (7+0) .. 1]--x9 :: [Integer]-x9 = [3, 1 .. 5]--x10 :: [Integer]-x10 = [3, (1+0) .. 5]
− tests/examples/ghc8/T10931.hs
@@ -1,25 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE RankNTypes #-}--{-# OPTIONS_GHC -Wall #-}--module T10931 ( BugC(..) ) where--data IdT f a = IdC (f a)--class ( m ~ Outer m (Inner m) ) => BugC (m :: * -> *) where-    type Inner m :: * -> *-    type Outer m :: (* -> *) -> * -> *--    bug :: ( forall n. ( n ~ Outer n (Inner n)-                       , Outer n ~ Outer m-                       )-            => Inner n a)-        -> m a--instance BugC (IdT m) where-    type Inner (IdT m) = m-    type Outer (IdT m) = IdT--    bug f = IdC f
− tests/examples/ghc8/T10934.hs
@@ -1,38 +0,0 @@-{-# LANGUAGE-    ScopedTypeVariables-  , DataKinds-  , GADTs-  , RankNTypes-  , TypeOperators-  , PolyKinds -- Comment out PolyKinds and the bug goes away.-  #-}-{-# OPTIONS_GHC -O #-}-  -- The bug is in SimplUtils.abstractFloats, so we need -O to trigger it--module KeyValue where--data AccValidation err a = AccFailure err | AccSuccess a--data KeyValueError = MissingValue--type WithKeyValueError = AccValidation [KeyValueError]--missing :: forall f rs. RecApplicative rs => Rec (WithKeyValueError :. f) rs-missing = rpure missingField-  where-    missingField :: forall x. (WithKeyValueError :. f) x-    missingField = Compose $ AccFailure [MissingValue]--data Rec :: (u -> *) -> [u] -> * where-  RNil :: Rec f '[]-  (:&) :: !(f r) -> !(Rec f rs) -> Rec f (r ': rs)--newtype Compose (f :: l -> *) (g :: k -> l) (x :: k)-  = Compose { getCompose :: f (g x) }--type (:.) f g = Compose f g--class RecApplicative rs where-  rpure-    :: (forall x. f x)-    -> Rec f rs
− tests/examples/ghc8/T10935.hs
@@ -1,5 +0,0 @@-{-# OPTIONS_GHC -fwarn-monomorphism-restriction #-}--module T10935 where--f x = let y = x+1 in (y,y)
− tests/examples/ghc8/T10942.hs
@@ -1,22 +0,0 @@-module Main where--import DynFlags-import GHC--import Control.Monad.IO.Class (liftIO)-import System.Environment-import HeaderInfo-import Outputable-import StringBuffer--main :: IO ()-main = do-  [libdir] <- getArgs-  runGhc (Just libdir) $ do-    dflags <- getSessionDynFlags-    let dflags' = dflags `gopt_set` Opt_KeepRawTokenStream-                         `gopt_set` Opt_Haddock-        filename = "T10942_A.hs"-    setSessionDynFlags dflags'-    stringBuffer <- liftIO $ hGetStringBuffer filename-    liftIO $ print (map unLoc (getOptions dflags' stringBuffer filename))
− tests/examples/ghc8/T10942_A.hs
@@ -1,16 +0,0 @@-{---A normal comment, to check if we can still pick up the CPP directive after it.---}--- Check that we can parse a file with leading comments---- ^ haddock--- * haddock--- | haddock--- $ haddock-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE CPP #-}-module T10942 where--main = return ()
− tests/examples/ghc8/T10945.hs
@@ -1,14 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}--module T10945 where--import Language.Haskell.TH--$$(return [-   SigD (mkName "m")-        (ForallT [PlainTV (mkName "a")]-                 []-                 (AppT (AppT ArrowT (VarT (mkName "a"))) (VarT (mkName "a"))))- , FunD (mkName "m")-        [Clause [VarP (mkName "x")] (NormalB (VarE (mkName "x"))) []]- ])
− tests/examples/ghc8/T10946.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE TemplateHaskell #-}--module T10946 where--import Language.Haskell.TH--m :: a -> a-m x = $$([||_||])
− tests/examples/ghc8/T10955dyn.hs
@@ -1,7 +0,0 @@-module Main where--import Foreign-import Foreign.C.Types-foreign import ccall "bar" dle :: IO CInt--main = dle >>= print
− tests/examples/ghc8/T10962.hs
@@ -1,16 +0,0 @@-{-# LANGUAGE MagicHash     #-}-{-# LANGUAGE UnboxedTuples #-}--module Main where--import GHC.Base--main :: IO ()-main = do-  -- Overflow.-  let (# w1, i1 #) = subWordC# 1## 3##-  print (W# w1, I# i1)--  -- No overflow.-  let (# w2, i2 #) = subWordC# 3## 1##-  print (W# w2, I# i2)
− tests/examples/ghc8/T10970a.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE CPP #-}-main = do-#ifndef VERSION_containers-    putStrLn "OK"-#endif-#ifndef MIN_VERSION_base-    putStrLn "OK"-#endif
− tests/examples/ghc8/T10971a.hs
@@ -1,9 +0,0 @@-{-# OPTIONS_GHC -Wall #-}-{-# LANGUAGE MonomorphismRestriction, ExtendedDefaultRules #-}-module T10971a where--import Data.Traversable (fmapDefault)--f = \x -> length x-g = \f x -> fmapDefault f x-h = \f x -> (fmapDefault f x, length x)
− tests/examples/ghc8/T10971b.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE MonomorphismRestriction, NoExtendedDefaultRules #-}-module T10971b where-import Data.Traversable (fmapDefault)-f = \x -> length x-g = \f x -> fmapDefault f x-h = \f x -> (fmapDefault f x, length x)
− tests/examples/ghc8/T10971c.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE MonomorphismRestriction, ExtendedDefaultRules #-}-module T10971c where--import Data.Traversable (fmapDefault)--f = \x -> length x-g = \f x -> fmapDefault f x-h = \f x -> (fmapDefault f x, length x)
− tests/examples/ghc8/T10971d.hs
@@ -1,6 +0,0 @@-import T10971c--main = do-  print $ f (Just 1)-  print $ g (+1) (Just 5)-  print $ h (const 5) Nothing
− tests/examples/ghc8/T10997.hs
@@ -1,6 +0,0 @@-module T10997 where--import T10997a--foo :: Exp a -> String-foo Tru = "True"
− tests/examples/ghc8/T10997_1.hs
@@ -1,15 +0,0 @@-module T10997_1 where--import T10997_1a--{- With ghc-7.10.2:--    The interface for ‘T10997a’-    Declaration for Just'-    Pattern synonym Just':-    Iface type variable out of scope:  k-    Cannot continue after interface file error--}--bar :: (Showable a) => Maybe a -> Maybe a-bar (Just' a) = Just' a
− tests/examples/ghc8/T10997_1a.hs
@@ -1,17 +0,0 @@-{-# LANGUAGE PatternSynonyms, ViewPatterns, ConstraintKinds, TypeFamilies, PolyKinds, KindSignatures #-}-module T10997_1a where--import GHC.Exts--type family Showable (a :: k) :: Constraint where-  Showable (a :: *) = (Show a)-  Showable a       = ()--extractJust :: Maybe a -> (Bool, a)-extractJust (Just a) = (True, a)-extractJust _        = (False, undefined)--pattern Just' :: Showable a => a -> (Maybe a)-pattern Just' a <- (extractJust -> (True, a)) where-  Just' a = Just a-
− tests/examples/ghc8/T10997a.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE GADTs, PatternSynonyms #-}--module T10997a where--data Exp ty where-  LitB :: Bool -> Exp Bool--pattern Tru :: () => b ~ Bool => Exp b-pattern Tru = LitB True--
− tests/examples/ghc8/T10999.hs
@@ -1,8 +0,0 @@-module T10999 where--import qualified Data.Set as Set--f :: _ => () -> _-f _ = Set.fromList undefined--g = map fst $ Set.toList $ f ()
− tests/examples/ghc8/T11010.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE PatternSynonyms, ExistentialQuantification, GADTSyntax #-}--module T11010 where--data Expr a where-  Fun :: String -> (a -> b) -> (Expr a -> Expr b)--pattern IntFun :: (a ~ Int) => String -> (a -> b) -> (Expr a -> Expr b)-pattern IntFun str f x = Fun str f x---- Alternative syntax for pattern synonyms:---   pattern---     Suc :: () => (a ~ Int) => Expr a -> Expr Int---     Suc n <- IntFun _     _     n where---     Suc n =  IntFun "suc" (+ 1) n-pattern Suc :: (a ~ Int) => Expr a -> Expr Int-pattern Suc n <- IntFun _     _     n where-         Suc n =  IntFun "suc" (+ 1) n
− tests/examples/ghc8/T11016.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE ImplicitParams, PartialTypeSignatures #-}--module T11016 where--f1 :: (?x :: Int, _) => Int-f1 = ?x--f2 :: (?x :: Int) => _-f2 = ?x
− tests/examples/ghc8/T11039.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module Foo () where--data A a = A a--pattern Q :: () => (A ~ f) => a -> f a-pattern Q a = A a
− tests/examples/ghc8/T11053.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}--- turn on with -fwarn-missing-pat-syn-sigs--module Foo where---- Should warn because of missing signature-pattern T = True--pattern J a = Just a--pattern J1 a <- Just a--pattern J2{b} = Just b--pattern J3{c} <- Just c--pattern F :: Bool-pattern F = False
− tests/examples/ghc8/T11067.hs
@@ -1,35 +0,0 @@-{-# LANGUAGE UndecidableInstances #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE ConstraintKinds #-}-{-# LANGUAGE KindSignatures #-}-{-# LANGUAGE PolyKinds #-}-{-# LANGUAGE MultiParamTypeClasses #-}-{-# LANGUAGE TypeFamilies #-}-{-# LANGUAGE FlexibleContexts #-}--module T11067 where--import Data.Monoid-import GHC.Exts (Constraint)--type family Skolem (p :: k -> Constraint) :: k-type family SkolemF (p :: k2 -> Constraint) (f :: k1 -> k2) :: k1---- | A quantified constraint-type Forall (p :: k -> Constraint) = p (Skolem p)-type ForallF (p :: k2 -> Constraint) (f :: k1 -> k2) = p (f (SkolemF p f))---- These work-class ForallF Monoid t => Monoid1 t-instance ForallF Monoid t => Monoid1 t--class ForallF Monoid1 t => Monoid2 t-instance ForallF Monoid1 t => Monoid2 t---- Changing f a ~ g a to, (Ord (f a), Ord (g a)), say, removes the error-class (f a ~ g a) => H f g a-instance (f a ~ g a) => H f g a---- This one gives a superclass cycle error.-class Forall (H f g) => H1 f g-instance Forall (H f g) => H1 f g
− tests/examples/ghc8/T11071.hs
@@ -1,28 +0,0 @@-module T11071 where--import Data.List (lines)-import qualified Data.Map as M ()-import qualified Data.IntMap as M ()-import qualified Data.IntMap as M () -- just to see if this confused the code--import qualified Data.Ord as Ord hiding (Down)--import qualified Data.Map as M' hiding (size, filter)-import qualified Data.Map as M' hiding (size)-import qualified Data.IntMap as M' hiding (size)-import qualified System.IO as M' () -- unrelated--ignore :: a -> IO ()-ignore = const (return ())--main = do-    ignore NoSuchModule.foo  -- no such module-    ignore Data.List.foobar  -- does not exist (one import)-    ignore M.foobar          -- does not exist (two imports)-    ignore M'.foobar         -- does not exist (three imports)-    ignore Data.List.sort    -- needs import-    ignore Data.List.unlines -- needs import, similar to imported-    ignore M.size            -- multiple modules to import from-    ignore M.valid           -- only one module to import from-    ignore Ord.Down          -- explicit hiding-    ignore M'.size           -- hidden and/or missing in import list
− tests/examples/ghc8/T11071a.hs
@@ -1,16 +0,0 @@-module T11071 where--import Data.List (lines)-import Data.IntMap ()-import Data.Ord hiding (Down)-import Prelude hiding (True)--ignore :: a -> IO ()-ignore = const (return ())--main = do-    ignore intersperse       -- missing in import list (one import)-    ignore foldl'            -- missing in import list (two imports)-    ignore Down              -- explicitly hidden-    ignore True              -- explicitly hidden from prelude (not really special)-    ignore foobar            -- genuinely out of scope
− tests/examples/ghc8/T11076.hs
@@ -1,15 +0,0 @@-{--   Test case for a problem where GHC had incorrect strictness-   information for foreign calls with lifted arguments- -}-{-# OPTIONS_GHC -O0 #-}-module Main where--import T11076A-import Control.Exception-x :: Bool-x = error "OK: x has been forced"--main :: IO ()-main = print (testBool x) `catch`-          \(ErrorCall e) -> putStrLn e -- x should be forced
− tests/examples/ghc8/T11076A.hs
@@ -1,21 +0,0 @@-{-# OPTIONS_GHC -O #-}-{-# LANGUAGE MagicHash,-             ForeignFunctionInterface,-             UnliftedFFITypes,-             GHCForeignImportPrim,-             BangPatterns-  #-}-module T11076A where--import GHC.Exts-import Unsafe.Coerce--{--   If the demand type for the foreign call argument is incorrectly strict,-   the bang pattern can be optimized out- -}-testBool :: Bool -> Int-testBool !x = I# (cmm_testPrim (unsafeCoerce x))-{-# INLINE testBool #-}--foreign import prim "testPrim" cmm_testPrim :: Any -> Int#
− tests/examples/ghc8/T11077.hs
@@ -1,3 +0,0 @@-module T11077 (module X, foo) where-import Data.List as X-foo = undefined
− tests/examples/ghc8/T11103.hs
@@ -1,20 +0,0 @@--- When using DuplicateRecordFields with TemplateHaskell, it is not possible to--- reify ambiguous names that are output by reifying field labels.--- See also overloadedrecflds/should_run/overloadedrecfldsrun04.hs--{-# LANGUAGE DuplicateRecordFields, TemplateHaskell #-}--import Language.Haskell.TH-import Language.Haskell.TH.Syntax--data R = MkR { foo :: Int, bar :: Int }-data S = MkS { foo :: Int }--$(do info <- reify ''R-     case info of-       TyConI (DataD _ _ _ [RecC _ [(foo_n, _, _), (bar_n, _, _)]] _)-         -> do { reify bar_n -- This is unambiguous-               ; reify foo_n -- This is ambiguous-               ; return []-               }-       _ -> error "unexpected result of reify")
− tests/examples/ghc8/T11112.hs
@@ -1,4 +0,0 @@-module T11112 where--sort :: Ord s -> [s] -> [s]-sort xs = xs
− tests/examples/ghc8/T11128.hs
@@ -1,50 +0,0 @@-{-# LANGUAGE DeriveFunctor #-}-{-# OPTIONS_GHC -fwarn-noncanonical-monad-instances  #-}---- | Test noncanonical-monad-instances warnings-module T11128 where--import Control.Applicative as A-import Control.Monad as M--------------------------------------------------------------------------------- minimal definition--data T0 a  = T0 a deriving Functor--instance A.Applicative T0 where-    pure   = T0-    (<*>)  = M.ap--instance M.Monad T0 where-    (>>=)  = undefined--------------------------------------------------------------------------------- trigger all 4 warnings--data T1 a  = T1 a deriving Functor--instance A.Applicative T1 where-    pure   = return-    (<*>)  = M.ap-    (*>)   = (M.>>)--instance M.Monad T1 where-    (>>=)  = undefined-    return = T1-    (>>)   = undefined--------------------------------------------------------------------------------- backward compat canonical defintion--data T2 a  = T2 a deriving Functor--instance Applicative T2 where-    pure   = T2-    (<*>)  = ap-    (*>)   = undefined--instance M.Monad T2 where-    (>>=)  = undefined-    return = pure-    (>>)   = (*>)
− tests/examples/ghc8/T11136.hs
@@ -1,7 +0,0 @@-{-# LANGUAGE TypeFamilies #-}--module T11136 where--class C a where-  type D a-  type instance D a x = x
− tests/examples/ghc8/T11142.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE TypeInType, RankNTypes #-}--module T11142 where--import Data.Kind--data SameKind :: k -> k -> *--foo :: forall b. (forall k (a :: k). SameKind a b) -> ()-foo = undefined
− tests/examples/ghc8/T11148.hs
@@ -1,11 +0,0 @@-{-# LANGUAGE TypeFamilies       #-}-{-# LANGUAGE DeriveFunctor      #-}-{-# LANGUAGE FlexibleInstances  #-}--module T11148 where--data family G a b c d-data instance G Int b Float d = G deriving Functor--data family H a b c d-data instance H [b] b d c = H deriving Functor
− tests/examples/ghc8/T11155.hs
@@ -1,11 +0,0 @@-{-# OPTIONS_GHC -O -fno-full-laziness #-}-module T11155 where--foo :: Bool-{-# NOINLINE foo #-}-foo = error "rk"--bar x = let t :: Char-            t = case foo of { True -> 'v'; False -> 'y' }-        in [t]-
− tests/examples/ghc8/T11164.hs
@@ -1,3 +0,0 @@-module T11164 where--import T11164b (T)
− tests/examples/ghc8/T11164a.hs
@@ -1,4 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module T11164a where--data family T a
− tests/examples/ghc8/T11164b.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-module T11164b where--import T11164a--data instance T Int = MkT
− tests/examples/ghc8/T11167.hs
@@ -1,21 +0,0 @@-module T11167 where--data SomeException--newtype ContT r m a = ContT {runContT :: (a -> m r) -> m r}--runContT' :: ContT r m a -> (a -> m r) -> m r-runContT' = runContT--catch_ :: IO a -> (SomeException -> IO a) -> IO a-catch_ = undefined--foo :: IO ()-foo = (undefined :: ContT () IO a)-        `runContT` (undefined :: a -> IO ())-        `catch_` (undefined :: SomeException -> IO ())--foo' :: IO ()-foo' = (undefined :: ContT () IO a)-         `runContT'` (undefined :: a -> IO ())-         `catch_` (undefined :: SomeException -> IO ())
− tests/examples/ghc8/T11167_ambig.hs
@@ -1,23 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-module T11167_ambig where--data SomeException--newtype ContT r m a = ContT {runContT :: (a -> m r) -> m r}-newtype ContT' r m a = ContT' {runContT :: (a -> m r) -> m r}--runContT' :: ContT r m a -> (a -> m r) -> m r-runContT' = runContT--catch_ :: IO a -> (SomeException -> IO a) -> IO a-catch_ = undefined--foo :: IO ()-foo = (undefined :: ContT () IO a)-        `runContT` (undefined :: a -> IO ())-        `catch_` (undefined :: SomeException -> IO ())--foo' :: IO ()-foo' = (undefined :: ContT () IO a)-         `runContT'` (undefined :: a -> IO ())-         `catch_` (undefined :: SomeException -> IO ())
− tests/examples/ghc8/T11167_ambiguous_fixity.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-module T11167_ambiguous_fixity where-import T11167_ambiguous_fixity_A-import T11167_ambiguous_fixity_B--x a = (a :: A) `foo` 0
− tests/examples/ghc8/T11167_ambiguous_fixity_A.hs
@@ -1,5 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-module T11167_ambiguous_fixity_A where-data A = MkA { foo :: Int -> Int }-data C = MkC { foo :: Int -> Int }-infixr 3 `foo`
− tests/examples/ghc8/T11167_ambiguous_fixity_B.hs
@@ -1,3 +0,0 @@-module T11167_ambiguous_fixity_B where-data B = MkB { foo :: Int -> Int }-infixl 5 `foo`
− tests/examples/ghc8/T11173.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-module T11173 where-import T11173a (A(..))---- Check that the fixity declaration applied to the field 'foo' is used-x b = b `foo` b `foo` 0
− tests/examples/ghc8/T11173a.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE DuplicateRecordFields #-}-module T11173a where--data A = A { foo :: Int -> Int, bar :: Int -> Int }-newtype B = B { foo :: Int -> Int }-infixr 5 `foo`-infixr 5 `bar`---- This is well-typed only if the fixity is correctly applied-y b = b `bar` b `bar` 0
− tests/examples/ghc8/T11182.hs
@@ -1,10 +0,0 @@-{-# LANGUAGE Strict #-}--- | Strict should imply StrictData-module Main where--data Lazy a = Lazy ~a--main :: IO ()-main =-  case Lazy undefined of-    Lazy _ -> putStrLn "Lazy"
− tests/examples/ghc8/T11187.hs
@@ -1,18 +0,0 @@-{-# LANGUAGE TypeFamilies #-}-{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}--module T11187 where-import Data.Type.Coercion--type family X--coercionXX :: Coercion X X-coercionXX = Coercion--coercionXX1 :: Coercion X X-coercionXX1 = c where-  c :: x ~ X => Coercion x x-  c = Coercion--coercionXX2 :: Coercion X X-coercionXX2 = c where c = Coercion
− tests/examples/ghc8/T11192.hs
@@ -1,15 +0,0 @@-{-# LANGUAGE PartialTypeSignatures #-}--module T11192 where--fails :: a-fails =-   let go :: _-       go 0 a = a-   in go (0 :: Int) undefined--succeeds :: a-succeeds =-   let go :: _-       go _ a = a-   in go (0 :: Int) undefined
− tests/examples/ghc8/T11193.hs
@@ -1,8 +0,0 @@-{-# LANGUAGE Strict #-}--module Main where--main = do-  ~a <- return (error "don't error here!")-  b <- return (error "error here!") -- this binding should be strict-  print "should never reach here"
− tests/examples/ghc8/T11208.hs
@@ -1,8 +0,0 @@-module T11208 where--import qualified Prelude as P--f n = n P.+ 1--g h (P.Just x) = P.Just (h x)-g _ P.Nothing  = P.Nothing
− tests/examples/ghc8/T11216.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE RebindableSyntax #-}--module Bug where--foo :: (a, b) -> ()-foo x | (_,_) <- x = ()
− tests/examples/ghc8/T11224.hs
@@ -1,28 +0,0 @@-{-# LANGUAGE PatternSynonyms , ViewPatterns #-}---- inlining a pattern synonym shouldn't change semantics--import Text.Read---- pattern PRead :: () => Read a => a -> String-pattern PRead a <- (readMaybe -> Just a)--foo :: String -> Int-foo (PRead x)  = (x::Int)-foo (PRead xs) = sum (xs::[Int])-foo _ = 666--bar :: String -> Int-bar (readMaybe -> Just x)  = (x::Int)-bar (readMaybe -> Just xs) = sum (xs::[Int])-bar _ = 666--main :: IO ()-main = do-  print $ foo "1"       -- 1-  print $ foo "[1,2,3]" -- 666 -- ???-  print $ foo "xxx"     -- 666--  print $ bar "1"       -- 1-  print $ bar "[1,2,3]" -- 6-  print $ bar "xxx"     -- 666
− tests/examples/ghc8/T11232.hs
@@ -1,15 +0,0 @@-module T11232 where--import Control.Monad-import Data.Data--mkMp :: ( MonadPlus m-        , Typeable a-        , Typeable b-        )-     => (b -> m b)-     -> a-     -> m a-mkMp ext = unM (maybe (M (const mzero)) id (gcast (M ext)))--newtype M m x = M { unM :: x -> m x }
− tests/examples/ghc8/T11237.hs
@@ -1,13 +0,0 @@-{-# LANGUAGE TypeInType #-}-{-# LANGUAGE GADTs #-}-module TypeInTypeBug where--import qualified Data.Kind--data Works :: Data.Kind.Type where-  WorksConstr :: Works--type Set = Data.Kind.Type--data ShouldWork :: Set where-  ShouldWorkConstr :: ShouldWork
− tests/examples/ghc8/T1133Aa.hs
@@ -1,3 +0,0 @@-module T1133Aa where--import {-# SOURCE #-} T1133A
− tests/examples/ghc8/T1133a.hs
@@ -1,3 +0,0 @@-module T1133a where--import {-# SOURCE #-} T1133
− tests/examples/ghc8/T11381.hs
@@ -1,9 +0,0 @@-{-# LANGUAGE TypeFamilies #-}--module T11381 where---- ensure that this code does not compile without InjectiveTypeFamilies and that--- injectivity error is not reported.-type family F a = r | r -> a-type instance F Int = Bool-type instance F Int = Char
− tests/examples/ghc8/T11959.hs
@@ -1,6 +0,0 @@-{-# LANGUAGE PatternSynonyms #-}-module Main where--import T11959Lib (Vec2(..), pattern (:>))--main = return ()
− tests/examples/ghc8/T17a.hs
@@ -1,18 +0,0 @@-{-# OPTIONS_GHC -fwarn-unused-top-binds #-}---- Trac #17--module Temp (foo, bar, quux) where--top :: Int-top = 1--foo :: ()-foo = let True = True in ()--bar :: Int -> Int-bar match = 1--quux :: Int-quux = let local = True-       in 2
− tests/examples/ghc8/T17b.hs

file too large to diff

− tests/examples/ghc8/T17c.hs

file too large to diff

− tests/examples/ghc8/T17d.hs

file too large to diff

− tests/examples/ghc8/T17e.hs

file too large to diff

− tests/examples/ghc8/T1830_1.hs

file too large to diff

− tests/examples/ghc8/T1830_2.hs

file too large to diff

− tests/examples/ghc8/T1830_3.hs

file too large to diff

− tests/examples/ghc8/T1830_3a.hs

file too large to diff

− tests/examples/ghc8/T2006.hs

file too large to diff

− tests/examples/ghc8/T2204.hs

file too large to diff

− tests/examples/ghc8/T2632.hs

file too large to diff

− tests/examples/ghc8/T2931.hs

file too large to diff

− tests/examples/ghc8/T2991.hs

file too large to diff

− tests/examples/ghc8/T3078.hs

file too large to diff

− tests/examples/ghc8/T322.hs

file too large to diff

− tests/examples/ghc8/T3468a.hs

file too large to diff

− tests/examples/ghc8/T3572.hs

file too large to diff

− tests/examples/ghc8/T365.hs

file too large to diff

− tests/examples/ghc8/T366.hs

file too large to diff

− tests/examples/ghc8/T3927.hs

file too large to diff

− tests/examples/ghc8/T3927a.hs

file too large to diff

− tests/examples/ghc8/T3927b.hs

file too large to diff

− tests/examples/ghc8/T4056.hs

file too large to diff

− tests/examples/ghc8/T4139.hs

file too large to diff

− tests/examples/ghc8/T4169.hs

file too large to diff

− tests/examples/ghc8/T4170.hs

file too large to diff

− tests/examples/ghc8/T5001b.hs

file too large to diff

− tests/examples/ghc8/T5333.hs

file too large to diff

− tests/examples/ghc8/T5721.hs

file too large to diff

− tests/examples/ghc8/T5821.hs

file too large to diff

− tests/examples/ghc8/T5884Other.hs

file too large to diff

− tests/examples/ghc8/T5908.hs

file too large to diff

− tests/examples/ghc8/T6018.hs

file too large to diff

− tests/examples/ghc8/T6018Afail.hs

file too large to diff

− tests/examples/ghc8/T6018Bfail.hs

file too large to diff

− tests/examples/ghc8/T6018Cfail.hs

file too large to diff

− tests/examples/ghc8/T6018Dfail.hs

file too large to diff

− tests/examples/ghc8/T6018a.hs

file too large to diff

− tests/examples/ghc8/T6018fail.hs

file too large to diff

− tests/examples/ghc8/T6018failclosed.hs

file too large to diff

− tests/examples/ghc8/T6018failclosed2.hs

file too large to diff

− tests/examples/ghc8/T6018rnfail.hs

file too large to diff

− tests/examples/ghc8/T6018th.hs

file too large to diff

− tests/examples/ghc8/T6062.hs

file too large to diff

− tests/examples/ghc8/T6124.hs

file too large to diff

− tests/examples/ghc8/T7411.hs

file too large to diff

− tests/examples/ghc8/T7669a.hs

file too large to diff

− tests/examples/ghc8/T7672.hs

file too large to diff

− tests/examples/ghc8/T7672a.hs

file too large to diff

− tests/examples/ghc8/T7765.hs

file too large to diff

− tests/examples/ghc8/T7788.hs

file too large to diff

− tests/examples/ghc8/T8030.hs

file too large to diff

− tests/examples/ghc8/T8034.hs

file too large to diff

− tests/examples/ghc8/T8101b.hs

file too large to diff

− tests/examples/ghc8/T8131b.hs

file too large to diff

− tests/examples/ghc8/T8274.hs

file too large to diff

− tests/examples/ghc8/T8455.hs

file too large to diff

− tests/examples/ghc8/T8550.hs

file too large to diff

− tests/examples/ghc8/T8555.hs

file too large to diff

− tests/examples/ghc8/T8633.hs

file too large to diff

− tests/examples/ghc8/T8743a.hs

file too large to diff

− tests/examples/ghc8/T8759a.hs

file too large to diff

− tests/examples/ghc8/T8799.hs

file too large to diff

− tests/examples/ghc8/T8970.hs

file too large to diff

− tests/examples/ghc8/T9015.hs

file too large to diff

− tests/examples/ghc8/T9017.hs

file too large to diff

− tests/examples/ghc8/T9177a.hs

file too large to diff

− tests/examples/ghc8/T9204a.hs

file too large to diff

− tests/examples/ghc8/T9204b.hs

file too large to diff

− tests/examples/ghc8/T9204b2.hs

file too large to diff

− tests/examples/ghc8/T9233.hs

file too large to diff

− tests/examples/ghc8/T9233a.hs

file too large to diff

− tests/examples/ghc8/T9238.hs

file too large to diff

− tests/examples/ghc8/T9260.hs

file too large to diff

− tests/examples/ghc8/T9430.hs

file too large to diff

− tests/examples/ghc8/T9554.hs

file too large to diff

− tests/examples/ghc8/T9600-1.hs

file too large to diff

− tests/examples/ghc8/T9600.hs

file too large to diff

− tests/examples/ghc8/T9632.hs

file too large to diff

− tests/examples/ghc8/T9824.hs

file too large to diff

− tests/examples/ghc8/T9839_02.hs

file too large to diff

− tests/examples/ghc8/T9839_03.hs

file too large to diff

− tests/examples/ghc8/T9839_04.hs

file too large to diff

− tests/examples/ghc8/T9839_05.hs

file too large to diff

− tests/examples/ghc8/T9839_06.hs

file too large to diff

− tests/examples/ghc8/T9840.hs

file too large to diff

− tests/examples/ghc8/T9840a.hs

file too large to diff

− tests/examples/ghc8/T9858a.hs

file too large to diff

− tests/examples/ghc8/T9858b.hs

file too large to diff

− tests/examples/ghc8/T9858c.hs

file too large to diff

− tests/examples/ghc8/T9858d.hs

file too large to diff

− tests/examples/ghc8/T9858e.hs

file too large to diff

− tests/examples/ghc8/T9867.hs

file too large to diff

− tests/examples/ghc8/T9878b.hs

file too large to diff

− tests/examples/ghc8/T9938.hs

file too large to diff

− tests/examples/ghc8/T9938B.hs

file too large to diff

− tests/examples/ghc8/T9939.hs

file too large to diff

− tests/examples/ghc8/T9951.hs

file too large to diff

− tests/examples/ghc8/T9951b.hs

file too large to diff

− tests/examples/ghc8/T9964.hs

file too large to diff

− tests/examples/ghc8/T9968.hs

file too large to diff

− tests/examples/ghc8/T9968a.hs

file too large to diff

− tests/examples/ghc8/T9973.hs

file too large to diff

− tests/examples/ghc8/T9975a.hs

file too large to diff

− tests/examples/ghc8/T9975b.hs

file too large to diff

− tests/examples/ghc8/TH_abstractFamily.hs

file too large to diff

− tests/examples/ghc8/TH_bracket1.hs

file too large to diff

− tests/examples/ghc8/TH_bracket2.hs

file too large to diff

− tests/examples/ghc8/TH_bracket3.hs

file too large to diff

− tests/examples/ghc8/TH_finalizer.hs

file too large to diff

− tests/examples/ghc8/TH_localname.hs

file too large to diff

− tests/examples/ghc8/TH_namePackage.hs

file too large to diff

− tests/examples/ghc8/TH_nameSpace.hs

file too large to diff

− tests/examples/ghc8/TH_ppr1.hs

file too large to diff

− tests/examples/ghc8/TH_reifyType1.hs

file too large to diff

− tests/examples/ghc8/TH_reifyType2.hs

file too large to diff

− tests/examples/ghc8/TH_repE1.hs

file too large to diff

− tests/examples/ghc8/TH_repE3.hs

file too large to diff

− tests/examples/ghc8/TH_scope.hs

file too large to diff

− tests/examples/ghc8/TH_spliceE5_prof_ext.hs

file too large to diff

− tests/examples/ghc8/TH_spliceE5_prof_ext_Lib.hs

file too large to diff

− tests/examples/ghc8/TH_tf2.hs

file too large to diff

− tests/examples/ghc8/TcCustomSolverSuper.hs

file too large to diff

− tests/examples/ghc8/Templates.hs

file too large to diff

− tests/examples/ghc8/Test.hs

file too large to diff

− tests/examples/ghc8/Test10255.hs

file too large to diff

− tests/examples/ghc8/Test10268.hs

file too large to diff

− tests/examples/ghc8/Test10269.hs

file too large to diff

− tests/examples/ghc8/Test10276.hs

file too large to diff

− tests/examples/ghc8/Test10278.hs

file too large to diff

− tests/examples/ghc8/Test10280.hs

file too large to diff

− tests/examples/ghc8/Test10307.hs

file too large to diff

− tests/examples/ghc8/Test10309.hs

file too large to diff

− tests/examples/ghc8/Test10312.hs

file too large to diff

− tests/examples/ghc8/Test10313.hs

file too large to diff

− tests/examples/ghc8/Test10354.hs

file too large to diff

− tests/examples/ghc8/Test10357.hs

file too large to diff

− tests/examples/ghc8/Test10358.hs

file too large to diff

− tests/examples/ghc8/Test10396.hs

file too large to diff

− tests/examples/ghc8/Test10399.hs

file too large to diff

− tests/examples/ghc8/Test11018.hs

file too large to diff

− tests/examples/ghc8/TestBoolFormula.hs

file too large to diff

− tests/examples/ghc8/TestUtils.hs

file too large to diff

− tests/examples/ghc8/Trac10045.hs

file too large to diff

− tests/examples/ghc8/TransAssociated.hs

file too large to diff

− tests/examples/ghc8/TransBundle.hs

file too large to diff

− tests/examples/ghc8/TypeFamilyInstanceLHS.hs

file too large to diff

− tests/examples/ghc8/TypeLevelVec.hs

file too large to diff

− tests/examples/ghc8/TypeSkolEscape.hs

file too large to diff

− tests/examples/ghc8/TypedSplice.hs

file too large to diff

− tests/examples/ghc8/UnicodeRules.hs

file too large to diff

− tests/examples/ghc8/UnicodeSyntax.hs

file too large to diff

− tests/examples/ghc8/Vta1.hs

file too large to diff

− tests/examples/ghc8/Vta2.hs

file too large to diff

− tests/examples/ghc8/WCompatWarningsNotOn.hs

file too large to diff

− tests/examples/ghc8/WCompatWarningsOff.hs

file too large to diff

− tests/examples/ghc8/WCompatWarningsOn.hs

file too large to diff

− tests/examples/ghc8/WCompatWarningsOnOff.hs

file too large to diff

− tests/examples/ghc8/Webhook.hs

file too large to diff

− tests/examples/ghc8/ado001.hs

file too large to diff

− tests/examples/ghc8/ado002.hs

file too large to diff

− tests/examples/ghc8/ado003.hs

file too large to diff

− tests/examples/ghc8/ado004.hs

file too large to diff

− tests/examples/ghc8/ado005.hs

file too large to diff

− tests/examples/ghc8/ado006.hs

file too large to diff

− tests/examples/ghc8/ado007.hs

file too large to diff

− tests/examples/ghc8/boolFormula.hs

file too large to diff

− tests/examples/ghc8/determ004.hs

file too large to diff

− tests/examples/ghc8/determinism001.hs

file too large to diff

− tests/examples/ghc8/dynamic-paper.hs

file too large to diff

− tests/examples/ghc8/export-class.hs

file too large to diff

− tests/examples/ghc8/export-ps-rec-sel.hs

file too large to diff

− tests/examples/ghc8/export-record-selector.hs

file too large to diff

− tests/examples/ghc8/export-super-class-fail.hs

file too large to diff

− tests/examples/ghc8/export-super-class.hs

file too large to diff

− tests/examples/ghc8/export-syntax.hs

file too large to diff

− tests/examples/ghc8/export-type-synonym.hs

file too large to diff

− tests/examples/ghc8/export-type.hs

file too large to diff

− tests/examples/ghc8/frontend01.hs

file too large to diff

− tests/examples/ghc8/haddockA034.hs

file too large to diff

− tests/examples/ghc8/listcomps.hs

file too large to diff

− tests/examples/ghc8/mixed-pat-syn-record-sels.hs

file too large to diff

− tests/examples/ghc8/mkGADTVars.hs

file too large to diff

− tests/examples/ghc8/multi-export.hs

file too large to diff

− tests/examples/ghc8/overloadedlabelsfail01.hs

file too large to diff

− tests/examples/ghc8/overloadedlabelsrun01.hs

file too large to diff

− tests/examples/ghc8/overloadedlabelsrun02.hs

file too large to diff

− tests/examples/ghc8/overloadedlabelsrun03.hs

file too large to diff

− tests/examples/ghc8/overloadedrecflds_generics.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail01.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail02.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail03.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail04.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail05.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail06.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail07.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail08.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail09.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail10.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail11.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail12.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail13.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsfail14.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsrun01.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsrun02.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsrun03.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsrun04.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsrun05.hs

file too large to diff

− tests/examples/ghc8/overloadedrecfldsrun06.hs

file too large to diff

− tests/examples/ghc8/performGC.hs

file too large to diff

− tests/examples/ghc8/plugins07.hs

file too large to diff

− tests/examples/ghc8/pmc001.hs

file too large to diff

− tests/examples/ghc8/pmc002.hs

file too large to diff

− tests/examples/ghc8/pmc003.hs

file too large to diff

− tests/examples/ghc8/pmc004.hs

file too large to diff

− tests/examples/ghc8/pmc005.hs

file too large to diff

− tests/examples/ghc8/pmc006.hs

file too large to diff

− tests/examples/ghc8/pmc007.hs

file too large to diff

− tests/examples/ghc8/poly-export-fail2.hs

file too large to diff

− tests/examples/ghc8/poly-export.hs

file too large to diff

− tests/examples/ghc8/poly-export2.hs

file too large to diff

− tests/examples/ghc8/poly-export3.hs

file too large to diff

− tests/examples/ghc8/records-check-sels.hs

file too large to diff

− tests/examples/ghc8/records-compile.hs

file too large to diff

− tests/examples/ghc8/records-exquant.hs

file too large to diff

− tests/examples/ghc8/records-mixing-fields.hs

file too large to diff

− tests/examples/ghc8/records-no-uni-update.hs

file too large to diff

− tests/examples/ghc8/records-no-uni-update2.hs

file too large to diff

− tests/examples/ghc8/records-poly-update.hs

file too large to diff

− tests/examples/ghc8/records-poly.hs

file too large to diff

− tests/examples/ghc8/records-prov-req.hs

file too large to diff

− tests/examples/ghc8/records-req-only.hs

file too large to diff

− tests/examples/ghc8/records-req.hs

file too large to diff

− tests/examples/ghc8/records-run.hs

file too large to diff

− tests/examples/ghc8/spec-inline-determ.hs

file too large to diff

− tests/examples/ghc8/stringSource.hs

file too large to diff

− tests/examples/ghc8/t10255.hs

file too large to diff

− tests/examples/ghc8/t10268.hs

file too large to diff

− tests/examples/ghc8/t10269.hs

file too large to diff

− tests/examples/ghc8/t10278.hs

file too large to diff

− tests/examples/ghc8/t10280.hs

file too large to diff

− tests/examples/ghc8/t10307.hs

file too large to diff

− tests/examples/ghc8/t10309.hs

file too large to diff

− tests/examples/ghc8/t10312.hs

file too large to diff

− tests/examples/ghc8/t10354.hs

file too large to diff

− tests/examples/ghc8/t10357.hs

file too large to diff

− tests/examples/ghc8/t10358.hs

file too large to diff

− tests/examples/ghc8/t10396.hs

file too large to diff

− tests/examples/ghc8/t10399.hs

file too large to diff

− tests/examples/ghc8/tc265.hs

file too large to diff

− tests/examples/ghc8/tcfail223.hs

file too large to diff

− tests/examples/ghc8/update-existential.hs

file too large to diff

+ tests/examples/ghc80/A.hs view

file too large to diff

+ tests/examples/ghc80/AddParams2.hs view

file too large to diff

+ tests/examples/ghc80/Associated.hs view

file too large to diff

+ tests/examples/ghc80/AssociatedInternal.hs view

file too large to diff

+ tests/examples/ghc80/B.hs view

file too large to diff

+ tests/examples/ghc80/BadTelescope.hs view

file too large to diff

+ tests/examples/ghc80/BadTelescope2.hs view

file too large to diff

+ tests/examples/ghc80/BadTelescope3.hs view

file too large to diff

+ tests/examples/ghc80/BadTelescope4.hs view

file too large to diff

+ tests/examples/ghc80/Base.hs view

file too large to diff

+ tests/examples/ghc80/Bundle.hs view

file too large to diff

+ tests/examples/ghc80/Bundle1.hs view

file too large to diff

+ tests/examples/ghc80/BundleExport.hs view

file too large to diff

+ tests/examples/ghc80/BundleInternal.hs view

file too large to diff

+ tests/examples/ghc80/BundleInternal1.hs view

file too large to diff

+ tests/examples/ghc80/C.hs view

file too large to diff

+ tests/examples/ghc80/CheckUtils.hs view

file too large to diff

+ tests/examples/ghc80/Class.hs view

file too large to diff

+ tests/examples/ghc80/ClosedFam1a.hs view

file too large to diff

+ tests/examples/ghc80/ClosedFam2a.hs view

file too large to diff

+ tests/examples/ghc80/ClosedFam3a.hs view

file too large to diff

+ tests/examples/ghc80/CmmSwitchTest.hs view

file too large to diff

+ tests/examples/ghc80/CmmSwitchTestGen.hs view

file too large to diff

+ tests/examples/ghc80/Collapse1.hs view

file too large to diff

+ tests/examples/ghc80/Compare.hs view

file too large to diff

+ tests/examples/ghc80/CustomTypeErrors01.hs view

file too large to diff

+ tests/examples/ghc80/CustomTypeErrors02.hs view

file too large to diff

+ tests/examples/ghc80/CustomTypeErrors03.hs view

file too large to diff

+ tests/examples/ghc80/D.hs view

file too large to diff

+ tests/examples/ghc80/DataFamilyInstanceLHS.hs view

file too large to diff

+ tests/examples/ghc80/DatatypeContexts.hs view

file too large to diff

+ tests/examples/ghc80/Decision.hs view

file too large to diff

+ tests/examples/ghc80/Defer03.hs view

file too large to diff

+ tests/examples/ghc80/Dep1.hs view

file too large to diff

+ tests/examples/ghc80/Dep2.hs view

file too large to diff

+ tests/examples/ghc80/Dep3.hs view

file too large to diff

+ tests/examples/ghc80/DepFail1.hs view

file too large to diff

+ tests/examples/ghc80/DeprM.hs view

file too large to diff

+ tests/examples/ghc80/DeprU.hs view

file too large to diff

+ tests/examples/ghc80/Deprecation.hs view

file too large to diff

+ tests/examples/ghc80/DsStrict.hs view

file too large to diff

+ tests/examples/ghc80/DsStrictData.hs view

file too large to diff

+ tests/examples/ghc80/DsStrictFail.hs view

file too large to diff

+ tests/examples/ghc80/DsStrictLet.hs view

file too large to diff

+ tests/examples/ghc80/DsStrictWarn.hs view

file too large to diff

+ tests/examples/ghc80/Eq.hs view

file too large to diff

+ tests/examples/ghc80/ExpandSynsFail1.hs view

file too large to diff

+ tests/examples/ghc80/ExpandSynsFail2.hs view

file too large to diff

+ tests/examples/ghc80/ExpandSynsFail3.hs view

file too large to diff

+ tests/examples/ghc80/ExpandSynsFail4.hs view

file too large to diff

+ tests/examples/ghc80/ExportSyntax.hs view

file too large to diff

+ tests/examples/ghc80/ExportSyntaxImport.hs view

file too large to diff

+ tests/examples/ghc80/ExprSigLocal.hs view

file too large to diff

+ tests/examples/ghc80/Extends.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardInExpressionSignature.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardInPatternSignature.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardInPatternSplice.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardInTypeSplice.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardInTypeSplice2.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardInTypeSpliceUsed.hs view

file too large to diff

+ tests/examples/ghc80/ExtraConstraintsWildcardTwice.hs view

file too large to diff

+ tests/examples/ghc80/F.hs view

file too large to diff

+ tests/examples/ghc80/FDsFromGivens2.hs view

file too large to diff

+ tests/examples/ghc80/Families.hs view

file too large to diff

+ tests/examples/ghc80/FooBar.hs view

file too large to diff

+ tests/examples/ghc80/ForFree.hs view

file too large to diff

+ tests/examples/ghc80/FromGrin2.hs view

file too large to diff

+ tests/examples/ghc80/FrontendPlugin.hs view

file too large to diff

+ tests/examples/ghc80/GA1r.hs view

file too large to diff

+ tests/examples/ghc80/Generate.hs view

file too large to diff

+ tests/examples/ghc80/Generic.hs view

file too large to diff

+ tests/examples/ghc80/IPLocation.hs view

file too large to diff

+ tests/examples/ghc80/Improvement.hs view

file too large to diff

+ tests/examples/ghc80/KindEqualities.hs view

file too large to diff

+ tests/examples/ghc80/KindEqualities2.hs view

file too large to diff

+ tests/examples/ghc80/KindLevels.hs view

file too large to diff

+ tests/examples/ghc80/ListComprehensions.hs view

file too large to diff

+ tests/examples/ghc80/LiteralsTest2.hs view

file too large to diff

+ tests/examples/ghc80/Main.hs view

file too large to diff

+ tests/examples/ghc80/Manipulate.hs view

file too large to diff

+ tests/examples/ghc80/Match.hs view

file too large to diff

+ tests/examples/ghc80/MonadFailErrors.hs view

file too large to diff

+ tests/examples/ghc80/MonadFailWarnings.hs view

file too large to diff

+ tests/examples/ghc80/MonadFailWarningsDisabled.hs view

file too large to diff

+ tests/examples/ghc80/MonadFailWarningsWithRebindableSyntax.hs view

file too large to diff

+ tests/examples/ghc80/MultiLineWarningPragma.hs view

file too large to diff

+ tests/examples/ghc80/MultiQuote.hs view

file too large to diff

+ tests/examples/ghc80/MultiWayIf.hs view

file too large to diff

+ tests/examples/ghc80/NamedWildcardInDataFamilyInstanceLHS.hs view

file too large to diff

+ tests/examples/ghc80/NamedWildcardInTypeFamilyInstanceLHS.hs view

file too large to diff

+ tests/examples/ghc80/NamedWildcardInTypeSplice.hs view

file too large to diff

+ tests/examples/ghc80/OutOfHeap.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail04_A.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail06_A.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail10_A.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail10_B.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail10_C.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail11_A.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsFail12_A.hs view

file too large to diff

+ tests/examples/ghc80/OverloadedRecFldsRun02_A.hs view

file too large to diff

+ tests/examples/ghc80/P.hs view

file too large to diff

+ tests/examples/ghc80/PSQ.hs view

file too large to diff

+ tests/examples/ghc80/ParenFunBind.hs view

file too large to diff

+ tests/examples/ghc80/ParenTypeSynonym.hs view

file too large to diff

+ tests/examples/ghc80/PartialClassMethodSignature2.hs view

file too large to diff

+ tests/examples/ghc80/PluralS.hs view

file too large to diff

+ tests/examples/ghc80/PolyInstances.hs view

file too large to diff

+ tests/examples/ghc80/PopCnt.hs view

file too large to diff

+ tests/examples/ghc80/Ppr017.hs view

file too large to diff

+ tests/examples/ghc80/Primop.hs view

file too large to diff

+ tests/examples/ghc80/Printf.hs view

file too large to diff

+ tests/examples/ghc80/PromotedClass.hs view

file too large to diff

+ tests/examples/ghc80/Q.hs view

file too large to diff

+ tests/examples/ghc80/QQ.hs view

file too large to diff

+ tests/examples/ghc80/Query.hs view

file too large to diff

+ tests/examples/ghc80/RAE_T32a.hs view

file too large to diff

+ tests/examples/ghc80/RAE_T32b.hs view

file too large to diff

+ tests/examples/ghc80/Rae31.hs view

file too large to diff

+ tests/examples/ghc80/RaeBlogPost.hs view

file too large to diff

+ tests/examples/ghc80/RandomPGC.hs view

file too large to diff

+ tests/examples/ghc80/RenamingStar.hs view

file too large to diff

+ tests/examples/ghc80/RepArrow.hs view

file too large to diff

+ tests/examples/ghc80/Roles12a.hs view

file too large to diff

+ tests/examples/ghc80/RuleDefiningPlugin.hs view

file too large to diff

+ tests/examples/ghc80/RulePragma.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap1.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap10.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap10_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap10_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap11.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap11_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap11_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap1_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap1_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap2.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap2_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap2_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap3.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap3_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap3_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap4.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap4_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap4_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap5.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap5_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap5_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap6.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap6_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap6_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap7.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap7_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap7_B.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap8.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap8_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap9.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap9_A.hs view

file too large to diff

+ tests/examples/ghc80/SH_Overlap9_B.hs view

file too large to diff

+ tests/examples/ghc80/SayAnnNames.hs view

file too large to diff

+ tests/examples/ghc80/SelfDep.hs view

file too large to diff

+ tests/examples/ghc80/SemicolonIf.hs view

file too large to diff

+ tests/examples/ghc80/SemigroupWarnings.hs view

file too large to diff

+ tests/examples/ghc80/Setup.hs view

file too large to diff

+ tests/examples/ghc80/ShouldFail.hs view

file too large to diff

+ tests/examples/ghc80/SigTvKinds.hs view

file too large to diff

+ tests/examples/ghc80/SigTvKinds2.hs view

file too large to diff

+ tests/examples/ghc80/SpecializePhaseControl.hs view

file too large to diff

+ tests/examples/ghc80/Splices.hs view

file too large to diff

+ tests/examples/ghc80/SplicesUsed.hs view

file too large to diff

+ tests/examples/ghc80/StackOverflow.hs view

file too large to diff

+ tests/examples/ghc80/Structure8.hs view

file too large to diff

+ tests/examples/ghc80/Structure8a.hs view

file too large to diff

+ tests/examples/ghc80/T10009.hs view

file too large to diff

+ tests/examples/ghc80/T10030.hs view

file too large to diff

+ tests/examples/ghc80/T10041.hs view

file too large to diff

+ tests/examples/ghc80/T10045.hs view

file too large to diff

+ tests/examples/ghc80/T10047.hs view

file too large to diff

+ tests/examples/ghc80/T10052-input.hs view

file too large to diff

+ tests/examples/ghc80/T10052.hs view

file too large to diff

+ tests/examples/ghc80/T10083.hs view

file too large to diff

+ tests/examples/ghc80/T10083a.hs view

file too large to diff

+ tests/examples/ghc80/T10100.hs view

file too large to diff

+ tests/examples/ghc80/T10104.hs view

file too large to diff

+ tests/examples/ghc80/T10109.hs view

file too large to diff

+ tests/examples/ghc80/T10110A.hs view

file too large to diff

+ tests/examples/ghc80/T10110B.hs view

file too large to diff

+ tests/examples/ghc80/T10110C.hs view

file too large to diff

+ tests/examples/ghc80/T10112.hs view

file too large to diff

+ tests/examples/ghc80/T10134.hs view

file too large to diff

+ tests/examples/ghc80/T10134a.hs view

file too large to diff

+ tests/examples/ghc80/T10139.hs view

file too large to diff

+ tests/examples/ghc80/T10141.hs view

file too large to diff

+ tests/examples/ghc80/T10148.hs view

file too large to diff

+ tests/examples/ghc80/T10156.hs view

file too large to diff

+ tests/examples/ghc80/T10180.hs view

file too large to diff

+ tests/examples/ghc80/T10181.hs view

file too large to diff

+ tests/examples/ghc80/T10182.hs view

file too large to diff

+ tests/examples/ghc80/T10182a.hs view

file too large to diff

+ tests/examples/ghc80/T10184.hs view

file too large to diff

+ tests/examples/ghc80/T10185.hs view

file too large to diff

+ tests/examples/ghc80/T10188.hs view

file too large to diff

+ tests/examples/ghc80/T10194.hs view

file too large to diff

+ tests/examples/ghc80/T10195.hs view

file too large to diff

+ tests/examples/ghc80/T10196.hs view

file too large to diff

+ tests/examples/ghc80/T10215.hs view

file too large to diff

+ tests/examples/ghc80/T10218.hs view

file too large to diff

+ tests/examples/ghc80/T10220B.hs view

file too large to diff

+ tests/examples/ghc80/T10226.hs view

file too large to diff

+ tests/examples/ghc80/T10233.hs view

file too large to diff

+ tests/examples/ghc80/T10233a.hs view

file too large to diff

+ tests/examples/ghc80/T10245.hs view

file too large to diff

+ tests/examples/ghc80/T10246.hs view

file too large to diff

+ tests/examples/ghc80/T10251.hs view

file too large to diff

+ tests/examples/ghc80/T10263.hs view

file too large to diff

+ tests/examples/ghc80/T10267.hs view

file too large to diff

+ tests/examples/ghc80/T10267a.hs view

file too large to diff

+ tests/examples/ghc80/T10279.hs view

file too large to diff

+ tests/examples/ghc80/T10283.hs view

file too large to diff

+ tests/examples/ghc80/T10284.hs view

file too large to diff

+ tests/examples/ghc80/T10285.hs view

file too large to diff

+ tests/examples/ghc80/T10285a.hs view

file too large to diff

+ tests/examples/ghc80/T10294.hs view

file too large to diff

+ tests/examples/ghc80/T10294a.hs view

file too large to diff

+ tests/examples/ghc80/T10306.hs view

file too large to diff

+ tests/examples/ghc80/T10318.hs view

file too large to diff

+ tests/examples/ghc80/T10321.hs view

file too large to diff

+ tests/examples/ghc80/T10322A.hs view

file too large to diff

+ tests/examples/ghc80/T10322B.hs view

file too large to diff

+ tests/examples/ghc80/T10322C.hs view

file too large to diff

+ tests/examples/ghc80/T10335.hs view

file too large to diff

+ tests/examples/ghc80/T10340.hs view

file too large to diff

+ tests/examples/ghc80/T10348.hs view

file too large to diff

+ tests/examples/ghc80/T10351.hs view

file too large to diff

+ tests/examples/ghc80/T10359.hs view

file too large to diff

+ tests/examples/ghc80/T10361a.hs view

file too large to diff

+ tests/examples/ghc80/T10361b.hs view

file too large to diff

+ tests/examples/ghc80/T10370.hs view

file too large to diff

+ tests/examples/ghc80/T10384.hs view

file too large to diff

+ tests/examples/ghc80/T10390.hs view

file too large to diff

+ tests/examples/ghc80/T10398.hs view

file too large to diff

+ tests/examples/ghc80/T10403.hs view

file too large to diff

+ tests/examples/ghc80/T10414.hs view

file too large to diff

+ tests/examples/ghc80/T10420.hs view

file too large to diff

+ tests/examples/ghc80/T10420a.hs view

file too large to diff

+ tests/examples/ghc80/T10423.hs view

file too large to diff

+ tests/examples/ghc80/T10428.hs view

file too large to diff

+ tests/examples/ghc80/T10438.hs view

file too large to diff

+ tests/examples/ghc80/T10447.hs view

file too large to diff

+ tests/examples/ghc80/T10451.hs view

file too large to diff

+ tests/examples/ghc80/T10460.hs view

file too large to diff

+ tests/examples/ghc80/T10461.hs view

file too large to diff

+ tests/examples/ghc80/T10463.hs view

file too large to diff

+ tests/examples/ghc80/T10481.hs view

file too large to diff

+ tests/examples/ghc80/T10482.hs view

file too large to diff

+ tests/examples/ghc80/T10482a.hs view

file too large to diff

+ tests/examples/ghc80/T10487.hs view

file too large to diff

+ tests/examples/ghc80/T10487_M.hs view

file too large to diff

+ tests/examples/ghc80/T10489.hs view

file too large to diff

+ tests/examples/ghc80/T10493.hs view

file too large to diff

+ tests/examples/ghc80/T10494.hs view

file too large to diff

+ tests/examples/ghc80/T10495.hs view

file too large to diff

+ tests/examples/ghc80/T10503.hs view

file too large to diff

+ tests/examples/ghc80/T10507.hs view

file too large to diff

+ tests/examples/ghc80/T10508_api.hs view

file too large to diff

+ tests/examples/ghc80/T10516.hs view

file too large to diff

+ tests/examples/ghc80/T10519.hs view

file too large to diff

+ tests/examples/ghc80/T10521.hs view

file too large to diff

+ tests/examples/ghc80/T10521b.hs view

file too large to diff

+ tests/examples/ghc80/T10524.hs view

file too large to diff

+ tests/examples/ghc80/T10534.hs view

file too large to diff

+ tests/examples/ghc80/T10534a.hs view

file too large to diff

+ tests/examples/ghc80/T10549.hs view

file too large to diff

+ tests/examples/ghc80/T10549a.hs view

file too large to diff

+ tests/examples/ghc80/T10561.hs view

file too large to diff

+ tests/examples/ghc80/T10562.hs view

file too large to diff

+ tests/examples/ghc80/T10564.hs view

file too large to diff

+ tests/examples/ghc80/T10570.hs view

file too large to diff

+ tests/examples/ghc80/T10590.hs view

file too large to diff

+ tests/examples/ghc80/T10596.hs view

file too large to diff

+ tests/examples/ghc80/T10602.hs view

file too large to diff

+ tests/examples/ghc80/T10602b.hs view

file too large to diff

+ tests/examples/ghc80/T10615.hs view

file too large to diff

+ tests/examples/ghc80/T10618.hs view

file too large to diff

+ tests/examples/ghc80/T10620.hs view

file too large to diff

+ tests/examples/ghc80/T10627.hs view

file too large to diff

+ tests/examples/ghc80/T10632.hs view

file too large to diff

+ tests/examples/ghc80/T10634.hs view

file too large to diff

+ tests/examples/ghc80/T10637.hs view

file too large to diff

+ tests/examples/ghc80/T10638.hs view

file too large to diff

+ tests/examples/ghc80/T10642.hs view

file too large to diff

+ tests/examples/ghc80/T10662.hs view

file too large to diff

+ tests/examples/ghc80/T10667.hs view

file too large to diff

+ tests/examples/ghc80/T10668.hs view

file too large to diff

+ tests/examples/ghc80/T10670.hs view

file too large to diff

+ tests/examples/ghc80/T10670a.hs view

file too large to diff

+ tests/examples/ghc80/T10678.hs view

file too large to diff

+ tests/examples/ghc80/T10689.hs view

file too large to diff

+ tests/examples/ghc80/T10689a.hs view

file too large to diff

+ tests/examples/ghc80/T10694.hs view

file too large to diff

+ tests/examples/ghc80/T10698.hs view

file too large to diff

+ tests/examples/ghc80/T10704.hs view

file too large to diff

+ tests/examples/ghc80/T10704a.hs view

file too large to diff

+ tests/examples/ghc80/T10713.hs view

file too large to diff

+ tests/examples/ghc80/T10734.hs view

file too large to diff

+ tests/examples/ghc80/T10742.hs view

file too large to diff

+ tests/examples/ghc80/T10744.hs view

file too large to diff

+ tests/examples/ghc80/T10747.hs view

file too large to diff

+ tests/examples/ghc80/T10753.hs view

file too large to diff

+ tests/examples/ghc80/T10767.hs view

file too large to diff

+ tests/examples/ghc80/T10781.hs view

file too large to diff

+ tests/examples/ghc80/T10796a.hs view

file too large to diff

+ tests/examples/ghc80/T10796b.hs view

file too large to diff

+ tests/examples/ghc80/T10806.hs view

file too large to diff

+ tests/examples/ghc80/T10815.hs view

file too large to diff

+ tests/examples/ghc80/T10819.hs view

file too large to diff

+ tests/examples/ghc80/T10819_Lib.hs view

file too large to diff

+ tests/examples/ghc80/T10820.hs view

file too large to diff

+ tests/examples/ghc80/T10826.hs view

file too large to diff

+ tests/examples/ghc80/T10830.hs view

file too large to diff

+ tests/examples/ghc80/T10836.hs view

file too large to diff

+ tests/examples/ghc80/T10845.hs view

file too large to diff

+ tests/examples/ghc80/T10846.hs view

file too large to diff

+ tests/examples/ghc80/T10870.hs view

file too large to diff

+ tests/examples/ghc80/T10890.hs view

file too large to diff

+ tests/examples/ghc80/T10890_1.hs view

file too large to diff

+ tests/examples/ghc80/T10890_2.hs view

file too large to diff

+ tests/examples/ghc80/T10890_2A.hs view

file too large to diff

+ tests/examples/ghc80/T10890_2B.hs view

file too large to diff

+ tests/examples/ghc80/T10891.hs view

file too large to diff

+ tests/examples/ghc80/T10895.hs view

file too large to diff

+ tests/examples/ghc80/T10897a.hs view

file too large to diff

+ tests/examples/ghc80/T10897b.hs view

file too large to diff

+ tests/examples/ghc80/T10904.hs view

file too large to diff

+ tests/examples/ghc80/T10908.hs view

file too large to diff

+ tests/examples/ghc80/T10929.hs view

file too large to diff

+ tests/examples/ghc80/T10931.hs view

file too large to diff

+ tests/examples/ghc80/T10934.hs view

file too large to diff

+ tests/examples/ghc80/T10935.hs view

file too large to diff

+ tests/examples/ghc80/T10942.hs view

file too large to diff

+ tests/examples/ghc80/T10942_A.hs view

file too large to diff

+ tests/examples/ghc80/T10945.hs view

file too large to diff

+ tests/examples/ghc80/T10946.hs view

file too large to diff

+ tests/examples/ghc80/T10955dyn.hs view

file too large to diff

+ tests/examples/ghc80/T10962.hs view

file too large to diff

+ tests/examples/ghc80/T10970a.hs view

file too large to diff

+ tests/examples/ghc80/T10971a.hs view

file too large to diff

+ tests/examples/ghc80/T10971b.hs view

file too large to diff

+ tests/examples/ghc80/T10971c.hs view

file too large to diff

+ tests/examples/ghc80/T10971d.hs view

file too large to diff

+ tests/examples/ghc80/T10997.hs view

file too large to diff

+ tests/examples/ghc80/T10997_1.hs view

file too large to diff

+ tests/examples/ghc80/T10997_1a.hs view

file too large to diff

+ tests/examples/ghc80/T10997a.hs view

file too large to diff

+ tests/examples/ghc80/T10999.hs view

file too large to diff

+ tests/examples/ghc80/T11010.hs view

file too large to diff

+ tests/examples/ghc80/T11016.hs view

file too large to diff

+ tests/examples/ghc80/T11039.hs view

file too large to diff

+ tests/examples/ghc80/T11053.hs view

file too large to diff

+ tests/examples/ghc80/T11067.hs view

file too large to diff

+ tests/examples/ghc80/T11071.hs view

file too large to diff

+ tests/examples/ghc80/T11071a.hs view

file too large to diff

+ tests/examples/ghc80/T11076.hs view

file too large to diff

+ tests/examples/ghc80/T11076A.hs view

file too large to diff

+ tests/examples/ghc80/T11077.hs view

file too large to diff

+ tests/examples/ghc80/T11103.hs view

file too large to diff

+ tests/examples/ghc80/T11112.hs view

file too large to diff

+ tests/examples/ghc80/T11128.hs view

file too large to diff

+ tests/examples/ghc80/T11136.hs view

file too large to diff

+ tests/examples/ghc80/T11142.hs view

file too large to diff

+ tests/examples/ghc80/T11148.hs view

file too large to diff

+ tests/examples/ghc80/T11155.hs view

file too large to diff

+ tests/examples/ghc80/T11164.hs view

file too large to diff

+ tests/examples/ghc80/T11164a.hs view

file too large to diff

+ tests/examples/ghc80/T11164b.hs view

file too large to diff

+ tests/examples/ghc80/T11167.hs view

file too large to diff

+ tests/examples/ghc80/T11167_ambig.hs view

file too large to diff

+ tests/examples/ghc80/T11167_ambiguous_fixity.hs view

file too large to diff

+ tests/examples/ghc80/T11167_ambiguous_fixity_A.hs view

file too large to diff

+ tests/examples/ghc80/T11167_ambiguous_fixity_B.hs view

file too large to diff

+ tests/examples/ghc80/T11173.hs view

file too large to diff

+ tests/examples/ghc80/T11173a.hs view

file too large to diff

+ tests/examples/ghc80/T11182.hs view

file too large to diff

+ tests/examples/ghc80/T11187.hs view

file too large to diff

+ tests/examples/ghc80/T11192.hs view

file too large to diff

+ tests/examples/ghc80/T11193.hs view

file too large to diff

+ tests/examples/ghc80/T11208.hs view

file too large to diff

+ tests/examples/ghc80/T11216.hs view

file too large to diff

+ tests/examples/ghc80/T11224.hs view

file too large to diff

+ tests/examples/ghc80/T11232.hs view

file too large to diff

+ tests/examples/ghc80/T11237.hs view

file too large to diff

+ tests/examples/ghc80/T1133Aa.hs view

file too large to diff

+ tests/examples/ghc80/T1133a.hs view

file too large to diff

+ tests/examples/ghc80/T11381.hs view

file too large to diff

+ tests/examples/ghc80/T11959.hs view

file too large to diff

+ tests/examples/ghc80/T17a.hs view

file too large to diff

+ tests/examples/ghc80/T17b.hs view

file too large to diff

+ tests/examples/ghc80/T17c.hs view

file too large to diff

+ tests/examples/ghc80/T17d.hs view

file too large to diff

+ tests/examples/ghc80/T17e.hs view

file too large to diff

+ tests/examples/ghc80/T1830_1.hs view

file too large to diff

+ tests/examples/ghc80/T1830_2.hs view

file too large to diff

+ tests/examples/ghc80/T1830_3.hs view

file too large to diff

+ tests/examples/ghc80/T1830_3a.hs view

file too large to diff

+ tests/examples/ghc80/T2006.hs view

file too large to diff

+ tests/examples/ghc80/T2204.hs view

file too large to diff

+ tests/examples/ghc80/T2632.hs view

file too large to diff

+ tests/examples/ghc80/T2931.hs view

file too large to diff

+ tests/examples/ghc80/T2991.hs view

file too large to diff

+ tests/examples/ghc80/T3078.hs view

file too large to diff

+ tests/examples/ghc80/T322.hs view

file too large to diff

+ tests/examples/ghc80/T3468a.hs view

file too large to diff

+ tests/examples/ghc80/T3572.hs view

file too large to diff

+ tests/examples/ghc80/T365.hs view

file too large to diff

+ tests/examples/ghc80/T366.hs view

file too large to diff

+ tests/examples/ghc80/T3927.hs view

file too large to diff

+ tests/examples/ghc80/T3927a.hs view

file too large to diff

+ tests/examples/ghc80/T3927b.hs view

file too large to diff

+ tests/examples/ghc80/T4056.hs view

file too large to diff

+ tests/examples/ghc80/T4139.hs view

file too large to diff

+ tests/examples/ghc80/T4169.hs view

file too large to diff

+ tests/examples/ghc80/T4170.hs view

file too large to diff

+ tests/examples/ghc80/T5001b.hs view

file too large to diff

+ tests/examples/ghc80/T5333.hs view

file too large to diff

+ tests/examples/ghc80/T5721.hs view

file too large to diff

+ tests/examples/ghc80/T5821.hs view

file too large to diff

+ tests/examples/ghc80/T5884Other.hs view

file too large to diff

+ tests/examples/ghc80/T5908.hs view

file too large to diff

+ tests/examples/ghc80/T6018.hs view

file too large to diff

+ tests/examples/ghc80/T6018Afail.hs view

file too large to diff

+ tests/examples/ghc80/T6018Bfail.hs view

file too large to diff

+ tests/examples/ghc80/T6018Cfail.hs view

file too large to diff

+ tests/examples/ghc80/T6018Dfail.hs view

file too large to diff

+ tests/examples/ghc80/T6018a.hs view

file too large to diff

+ tests/examples/ghc80/T6018fail.hs view

file too large to diff

+ tests/examples/ghc80/T6018failclosed.hs view

file too large to diff

+ tests/examples/ghc80/T6018failclosed2.hs view

file too large to diff

+ tests/examples/ghc80/T6018rnfail.hs view

file too large to diff

+ tests/examples/ghc80/T6018th.hs view

file too large to diff

+ tests/examples/ghc80/T6062.hs view

file too large to diff

+ tests/examples/ghc80/T6124.hs view

file too large to diff

+ tests/examples/ghc80/T7411.hs view

file too large to diff

+ tests/examples/ghc80/T7669a.hs view

file too large to diff

+ tests/examples/ghc80/T7672.hs view

file too large to diff

+ tests/examples/ghc80/T7672a.hs view

file too large to diff

+ tests/examples/ghc80/T7765.hs view

file too large to diff

+ tests/examples/ghc80/T7788.hs view

file too large to diff

+ tests/examples/ghc80/T8030.hs view

file too large to diff

+ tests/examples/ghc80/T8034.hs view

file too large to diff

+ tests/examples/ghc80/T8101b.hs view

file too large to diff

+ tests/examples/ghc80/T8131b.hs view

file too large to diff

+ tests/examples/ghc80/T8274.hs view

file too large to diff

+ tests/examples/ghc80/T8455.hs view

file too large to diff

+ tests/examples/ghc80/T8550.hs view

file too large to diff

+ tests/examples/ghc80/T8555.hs view

file too large to diff

+ tests/examples/ghc80/T8633.hs view

file too large to diff

+ tests/examples/ghc80/T8743a.hs view

file too large to diff

+ tests/examples/ghc80/T8759a.hs view

file too large to diff

+ tests/examples/ghc80/T8799.hs view

file too large to diff

+ tests/examples/ghc80/T8970.hs view

file too large to diff

+ tests/examples/ghc80/T9015.hs view

file too large to diff

+ tests/examples/ghc80/T9017.hs view

file too large to diff

+ tests/examples/ghc80/T9177a.hs view

file too large to diff

+ tests/examples/ghc80/T9204a.hs view

file too large to diff

+ tests/examples/ghc80/T9204b.hs view

file too large to diff

+ tests/examples/ghc80/T9204b2.hs view

file too large to diff

+ tests/examples/ghc80/T9233.hs view

file too large to diff

+ tests/examples/ghc80/T9233a.hs view

file too large to diff

+ tests/examples/ghc80/T9238.hs view

file too large to diff

+ tests/examples/ghc80/T9260.hs view

file too large to diff

+ tests/examples/ghc80/T9430.hs view

file too large to diff

+ tests/examples/ghc80/T9554.hs view

file too large to diff

+ tests/examples/ghc80/T9600-1.hs view

file too large to diff

+ tests/examples/ghc80/T9600.hs view

file too large to diff

+ tests/examples/ghc80/T9632.hs view

file too large to diff

+ tests/examples/ghc80/T9824.hs view

file too large to diff

+ tests/examples/ghc80/T9839_02.hs view

file too large to diff

+ tests/examples/ghc80/T9839_03.hs view

file too large to diff

+ tests/examples/ghc80/T9839_04.hs view

file too large to diff

+ tests/examples/ghc80/T9839_05.hs view

file too large to diff

+ tests/examples/ghc80/T9839_06.hs view

file too large to diff

+ tests/examples/ghc80/T9840.hs view

file too large to diff

+ tests/examples/ghc80/T9840a.hs view

file too large to diff

+ tests/examples/ghc80/T9858a.hs view

file too large to diff

+ tests/examples/ghc80/T9858b.hs view

file too large to diff

+ tests/examples/ghc80/T9858c.hs view

file too large to diff

+ tests/examples/ghc80/T9858d.hs view

file too large to diff

+ tests/examples/ghc80/T9858e.hs view

file too large to diff

+ tests/examples/ghc80/T9867.hs view

file too large to diff

+ tests/examples/ghc80/T9878b.hs view

file too large to diff

+ tests/examples/ghc80/T9938.hs view

file too large to diff

+ tests/examples/ghc80/T9938B.hs view

file too large to diff

+ tests/examples/ghc80/T9939.hs view

file too large to diff

+ tests/examples/ghc80/T9951.hs view

file too large to diff

+ tests/examples/ghc80/T9951b.hs view

file too large to diff

+ tests/examples/ghc80/T9964.hs view

file too large to diff

+ tests/examples/ghc80/T9968.hs view

file too large to diff

+ tests/examples/ghc80/T9968a.hs view

file too large to diff

+ tests/examples/ghc80/T9973.hs view

file too large to diff

+ tests/examples/ghc80/T9975a.hs view

file too large to diff

+ tests/examples/ghc80/T9975b.hs view

file too large to diff

+ tests/examples/ghc80/TH_abstractFamily.hs view

file too large to diff

+ tests/examples/ghc80/TH_bracket1.hs view

file too large to diff

+ tests/examples/ghc80/TH_bracket2.hs view

file too large to diff

+ tests/examples/ghc80/TH_bracket3.hs view

file too large to diff

+ tests/examples/ghc80/TH_finalizer.hs view

file too large to diff

+ tests/examples/ghc80/TH_localname.hs view

file too large to diff

+ tests/examples/ghc80/TH_namePackage.hs view

file too large to diff

+ tests/examples/ghc80/TH_nameSpace.hs view

file too large to diff

+ tests/examples/ghc80/TH_ppr1.hs view

file too large to diff

+ tests/examples/ghc80/TH_reifyType1.hs view

file too large to diff

+ tests/examples/ghc80/TH_reifyType2.hs view

file too large to diff

+ tests/examples/ghc80/TH_repE1.hs view

file too large to diff

+ tests/examples/ghc80/TH_repE3.hs view

file too large to diff

+ tests/examples/ghc80/TH_scope.hs view

file too large to diff

+ tests/examples/ghc80/TH_spliceE5_prof_ext.hs view

file too large to diff

+ tests/examples/ghc80/TH_spliceE5_prof_ext_Lib.hs view

file too large to diff

+ tests/examples/ghc80/TH_tf2.hs view

file too large to diff

+ tests/examples/ghc80/TcCustomSolverSuper.hs view

file too large to diff

+ tests/examples/ghc80/Templates.hs view

file too large to diff

+ tests/examples/ghc80/Test.hs view

file too large to diff

+ tests/examples/ghc80/Test10255.hs view

file too large to diff

+ tests/examples/ghc80/Test10268.hs view

file too large to diff

+ tests/examples/ghc80/Test10269.hs view

file too large to diff

+ tests/examples/ghc80/Test10276.hs view

file too large to diff

+ tests/examples/ghc80/Test10278.hs view

file too large to diff

+ tests/examples/ghc80/Test10280.hs view

file too large to diff

+ tests/examples/ghc80/Test10307.hs view

file too large to diff

+ tests/examples/ghc80/Test10309.hs view

file too large to diff

+ tests/examples/ghc80/Test10312.hs view

file too large to diff

+ tests/examples/ghc80/Test10313.hs view

file too large to diff

+ tests/examples/ghc80/Test10354.hs view

file too large to diff

+ tests/examples/ghc80/Test10357.hs view

file too large to diff

+ tests/examples/ghc80/Test10358.hs view

file too large to diff

+ tests/examples/ghc80/Test10396.hs view

file too large to diff

+ tests/examples/ghc80/Test10399.hs view

file too large to diff

+ tests/examples/ghc80/Test11018.hs view

file too large to diff

+ tests/examples/ghc80/TestBoolFormula.hs view

file too large to diff

+ tests/examples/ghc80/TestUtils.hs view

file too large to diff

+ tests/examples/ghc80/Trac10045.hs view

file too large to diff

+ tests/examples/ghc80/TransAssociated.hs view

file too large to diff

+ tests/examples/ghc80/TransBundle.hs view

file too large to diff

+ tests/examples/ghc80/TypeFamilyInstanceLHS.hs view

file too large to diff

+ tests/examples/ghc80/TypeLevelVec.hs view

file too large to diff

+ tests/examples/ghc80/TypeSkolEscape.hs view

file too large to diff

+ tests/examples/ghc80/TypedSplice.hs view

file too large to diff

+ tests/examples/ghc80/UnicodeRules.hs view

file too large to diff

+ tests/examples/ghc80/UnicodeSyntax.hs view

file too large to diff

+ tests/examples/ghc80/Vta1.hs view

file too large to diff

+ tests/examples/ghc80/Vta2.hs view

file too large to diff

+ tests/examples/ghc80/WCompatWarningsNotOn.hs view

file too large to diff

+ tests/examples/ghc80/WCompatWarningsOff.hs view

file too large to diff

+ tests/examples/ghc80/WCompatWarningsOn.hs view

file too large to diff

+ tests/examples/ghc80/WCompatWarningsOnOff.hs view

file too large to diff

+ tests/examples/ghc80/Webhook.hs view

file too large to diff

+ tests/examples/ghc80/ado001.hs view

file too large to diff

+ tests/examples/ghc80/ado002.hs view

file too large to diff

+ tests/examples/ghc80/ado003.hs view

file too large to diff

+ tests/examples/ghc80/ado004.hs view

file too large to diff

+ tests/examples/ghc80/ado005.hs view

file too large to diff

+ tests/examples/ghc80/ado006.hs view

file too large to diff

+ tests/examples/ghc80/ado007.hs view

file too large to diff

+ tests/examples/ghc80/boolFormula.hs view

file too large to diff

+ tests/examples/ghc80/determ004.hs view

file too large to diff

+ tests/examples/ghc80/determinism001.hs view

file too large to diff

+ tests/examples/ghc80/dynamic-paper.hs view

file too large to diff

+ tests/examples/ghc80/export-class.hs view

file too large to diff

+ tests/examples/ghc80/export-ps-rec-sel.hs view

file too large to diff

+ tests/examples/ghc80/export-record-selector.hs view

file too large to diff

+ tests/examples/ghc80/export-super-class-fail.hs view

file too large to diff

+ tests/examples/ghc80/export-super-class.hs view

file too large to diff

+ tests/examples/ghc80/export-syntax.hs view

file too large to diff

+ tests/examples/ghc80/export-type-synonym.hs view

file too large to diff

+ tests/examples/ghc80/export-type.hs view

file too large to diff

+ tests/examples/ghc80/frontend01.hs view

file too large to diff

+ tests/examples/ghc80/haddockA034.hs view

file too large to diff

+ tests/examples/ghc80/listcomps.hs view

file too large to diff

+ tests/examples/ghc80/mixed-pat-syn-record-sels.hs view

file too large to diff

+ tests/examples/ghc80/mkGADTVars.hs view

file too large to diff

+ tests/examples/ghc80/multi-export.hs view

file too large to diff

+ tests/examples/ghc80/overloadedlabelsfail01.hs view

file too large to diff

+ tests/examples/ghc80/overloadedlabelsrun01.hs view

file too large to diff

+ tests/examples/ghc80/overloadedlabelsrun02.hs view

file too large to diff

+ tests/examples/ghc80/overloadedlabelsrun03.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecflds_generics.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail01.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail02.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail03.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail04.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail05.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail06.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail07.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail08.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail09.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail10.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail11.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail12.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail13.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsfail14.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsrun01.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsrun02.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsrun03.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsrun04.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsrun05.hs view

file too large to diff

+ tests/examples/ghc80/overloadedrecfldsrun06.hs view

file too large to diff

+ tests/examples/ghc80/performGC.hs view

file too large to diff

+ tests/examples/ghc80/plugins07.hs view

file too large to diff

+ tests/examples/ghc80/pmc001.hs view

file too large to diff

+ tests/examples/ghc80/pmc002.hs view

file too large to diff

+ tests/examples/ghc80/pmc003.hs view

file too large to diff

+ tests/examples/ghc80/pmc004.hs view

file too large to diff

+ tests/examples/ghc80/pmc005.hs view

file too large to diff

+ tests/examples/ghc80/pmc006.hs view

file too large to diff

+ tests/examples/ghc80/pmc007.hs view

file too large to diff

+ tests/examples/ghc80/poly-export-fail2.hs view

file too large to diff

+ tests/examples/ghc80/poly-export.hs view

file too large to diff

+ tests/examples/ghc80/poly-export2.hs view

file too large to diff

+ tests/examples/ghc80/poly-export3.hs view

file too large to diff

+ tests/examples/ghc80/records-check-sels.hs view

file too large to diff

+ tests/examples/ghc80/records-compile.hs view

file too large to diff

+ tests/examples/ghc80/records-exquant.hs view

file too large to diff

+ tests/examples/ghc80/records-mixing-fields.hs view

file too large to diff

+ tests/examples/ghc80/records-no-uni-update.hs view

file too large to diff

+ tests/examples/ghc80/records-no-uni-update2.hs view

file too large to diff

+ tests/examples/ghc80/records-poly-update.hs view

file too large to diff

+ tests/examples/ghc80/records-poly.hs view

file too large to diff

+ tests/examples/ghc80/records-prov-req.hs view

file too large to diff

+ tests/examples/ghc80/records-req-only.hs view

file too large to diff

+ tests/examples/ghc80/records-req.hs view

file too large to diff

+ tests/examples/ghc80/records-run.hs view

file too large to diff

+ tests/examples/ghc80/spec-inline-determ.hs view

file too large to diff

+ tests/examples/ghc80/stringSource.hs view

file too large to diff

+ tests/examples/ghc80/t10255.hs view

file too large to diff

+ tests/examples/ghc80/t10268.hs view

file too large to diff

+ tests/examples/ghc80/t10269.hs view

file too large to diff

+ tests/examples/ghc80/t10278.hs view

file too large to diff

+ tests/examples/ghc80/t10280.hs view

file too large to diff

+ tests/examples/ghc80/t10307.hs view

file too large to diff

+ tests/examples/ghc80/t10309.hs view

file too large to diff

+ tests/examples/ghc80/t10312.hs view

file too large to diff

+ tests/examples/ghc80/t10354.hs view

file too large to diff

+ tests/examples/ghc80/t10357.hs view

file too large to diff

+ tests/examples/ghc80/t10358.hs view

file too large to diff

+ tests/examples/ghc80/t10396.hs view

file too large to diff

+ tests/examples/ghc80/t10399.hs view

file too large to diff

+ tests/examples/ghc80/tc265.hs view

file too large to diff

+ tests/examples/ghc80/tcfail223.hs view

file too large to diff

+ tests/examples/ghc80/update-existential.hs view

file too large to diff