summaryrefslogtreecommitdiff
path: root/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs
blob: 34a5e4ebacd32aca7fc641a6b81c2ab226267fa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{-# LANGUAGE Safe #-}
-- | Import all modules from prelude that should be safe
module Main where

import Numeric
import Prelude
-- import Foreign

import Control.Applicative
import Control.Arrow
import Control.Category

-- import Control.ST
-- import Control.ST.Lazy
-- import Control.ST.Strict

import Control.Concurrent
import Control.Concurrent.Chan
import Control.Concurrent.MVar
import Control.Concurrent.QSem
import Control.Concurrent.QSemN
import Control.Concurrent.SampleVar

import Control.Exception
import Control.OldException
import Control.Exception.Base

import Control.Monad
import Control.Monad.Fix
import Control.Monad.Group
import Control.Monad.Instances
import Control.Monad.Zip

import Data.Bits
import Data.Bool
import Data.Char
import Data.Complex
import Data.Either
import Data.Eq
import Data.Fixed
import Data.Foldable
import Data.Function
import Data.Functor
import Data.HashTable
import Data.IORef
import Data.Int
import Data.Ix
import Data.List
import Data.Maybe
import Data.Monoid
import Data.Ord
import Data.Ratio
import Data.String
import Data.Traversable
import Data.Tuple
import Data.Typeable
import Data.Unique
import Data.Version
import Data.Word

import Data.STRef
import Data.STRef.Lazy
import Data.STRef.Strict

-- import Debug.Trace

import Foreign.Concurrent
-- import Foreign.ForeignPtr
import Foreign.Ptr
import Foreign.StablePtr
import Foreign.Storable

import Foreign.C
import Foreign.C.Error
import Foreign.C.String
import Foreign.C.Types

-- import Foreign.Marshal
import Foreign.Marshal.Alloc
import Foreign.Marshal.Array
import Foreign.Marshal.Error
import Foreign.Marshal.Pool
import Foreign.Marshal.Utils

import System.CPUTime
import System.Environment
import System.Exit
import System.Info
import System.Mem
import System.Timeout

import System.Console.GetOpt

import System.IO
import System.IO.Error

import System.Mem.StableName
import System.Mem.Weak

import System.Posix.Internals
import System.Posix.Types

import Text.Printf

import Text.Read
import Text.Read.Lex

import Text.Show
import Text.Show.Functions

import Text.ParserCombinators.ReadP
import Text.ParserCombinators.ReadPrec

-- import Unsafe.Coerce

f :: Int
f = 2

main :: IO ()
main = putStrLn $ "X is: " ++ show f