Improve Safe Haskell bounds for changes to base over time
[ghc.git] / testsuite / tests / safeHaskell / unsafeLibs / GoodImport03.hs
1 {-# LANGUAGE Safe #-}
2 {-# OPTIONS_GHC -fno-warn-deprecations #-}
3 -- | Import all modules from prelude that should be safe
4 module Main where
5
6 import Numeric
7 import Prelude
8
9 import Control.Applicative
10 import Control.Arrow
11 import Control.Category
12
13 import Control.Concurrent
14 import Control.Concurrent.Chan
15 import Control.Concurrent.MVar
16 import Control.Concurrent.QSem
17 import Control.Concurrent.QSemN
18
19 import Control.Exception
20 import Control.Exception.Base
21
22 import Control.Monad
23 import Control.Monad.Fix
24 import Control.Monad.Instances
25 import Control.Monad.Zip
26
27 import Control.Monad.ST
28 import Control.Monad.ST.Lazy
29 import Control.Monad.ST.Strict
30
31 import Data.Bifunctor
32 import Data.Bits
33 import Data.Bool
34 import Data.Char
35 -- import Data.Coerce
36 import Data.Complex
37 import Data.Data
38 import Data.Dynamic
39 import Data.Either
40 import Data.Eq
41 import Data.Fixed
42 import Data.Foldable
43 import Data.Function
44 import Data.Functor.Identity
45 import Data.Functor
46 import Data.IORef
47 import Data.Int
48 import Data.Ix
49 import Data.List
50 import Data.Maybe
51 import Data.Monoid
52 import Data.Ord
53 import Data.Proxy
54 import Data.Ratio
55 import Data.String
56 import Data.Traversable
57 import Data.Tuple
58 import Data.Typeable
59 -- import Data.Typeable.Internal
60 import Data.Unique
61 import Data.Version
62 import Data.Word
63
64 import Data.STRef
65 import Data.STRef.Lazy
66 import Data.STRef.Strict
67
68 import Data.Type.Bool
69 -- import Data.Type.Coercion
70 -- import Data.Type.Equality
71
72 -- import Debug.Trace
73
74 import Foreign
75
76 import Foreign.Concurrent
77 import Foreign.ForeignPtr
78 import Foreign.Ptr
79 import Foreign.StablePtr
80 import Foreign.Storable
81
82 import Foreign.C
83 import Foreign.C.Error
84 import Foreign.C.String
85 import Foreign.C.Types
86
87 import Foreign.Marshal
88 import Foreign.Marshal.Alloc
89 import Foreign.Marshal.Array
90 import Foreign.Marshal.Error
91 import Foreign.Marshal.Pool
92 import Foreign.Marshal.Utils
93
94 import System.CPUTime
95 import System.Console.GetOpt
96 import System.Environment
97 import System.Exit
98 import System.IO
99 import System.IO.Error
100 import System.Info
101 import System.Mem
102 import System.Mem.StableName
103 import System.Mem.Weak
104 import System.Posix.Internals
105 import System.Posix.Types
106 import System.Timeout
107
108 import Text.ParserCombinators.ReadP
109 import Text.ParserCombinators.ReadPrec
110 import Text.Printf
111 import Text.Read
112 import Text.Read.Lex
113 import Text.Show
114 import Text.Show.Functions
115
116 -- import Unsafe.Coerce
117
118 f :: Int
119 f = 2
120
121 main :: IO ()
122 main = putStrLn $ "X is: " ++ show f
123