2 % (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
4 \section[PrelMods]{Definitions of prelude modules}
6 The strings identify built-in prelude modules. They are
7 defined here so as to avod
9 [oh dear, looks like the recursive module monster caught up with
10 and gobbled whoever was writing the above :-) -- SOF ]
15 mkTupNameStr, mkUbxTupNameStr,
17 pREL_GHC, pREL_BASE, pREL_ADDR, pREL_STABLE,
18 pREL_IO_BASE, pREL_PACK, pREL_ERR,
20 pREL_GHC_Name, pRELUDE_Name, mONAD_Name, rATIO_Name,
21 iX_Name, mAIN_Name, pREL_MAIN_Name, pREL_ERR_Name,
22 pREL_BASE_Name, pREL_NUM_Name, pREL_LIST_Name,
23 pREL_TUP_Name, pREL_ADDR_Name, pREL_READ_Name,
24 pREL_PACK_Name, pREL_CONC_Name, pREL_IO_BASE_Name,
25 pREL_ST_Name, pREL_ARR_Name, pREL_FOREIGN_Name,
26 pREL_STABLE_Name, pREL_SHOW_Name, pREL_ENUM_Name, iNT_Name, wORD_Name
29 #include "HsVersions.h"
31 import Module ( Module, ModuleName, mkPrelModule, mkSrcModule )
32 import Util ( nOfThem )
33 import Panic ( panic )
37 pRELUDE_Name = mkSrcModule "Prelude"
38 pREL_GHC_Name = mkSrcModule "PrelGHC" -- Primitive types and values
39 pREL_BASE_Name = mkSrcModule "PrelBase"
40 pREL_ENUM_Name = mkSrcModule "PrelEnum"
41 pREL_SHOW_Name = mkSrcModule "PrelShow"
42 pREL_READ_Name = mkSrcModule "PrelRead"
43 pREL_NUM_Name = mkSrcModule "PrelNum"
44 pREL_LIST_Name = mkSrcModule "PrelList"
45 pREL_TUP_Name = mkSrcModule "PrelTup"
46 pREL_PACK_Name = mkSrcModule "PrelPack"
47 pREL_CONC_Name = mkSrcModule "PrelConc"
48 pREL_IO_BASE_Name = mkSrcModule "PrelIOBase"
49 pREL_ST_Name = mkSrcModule "PrelST"
50 pREL_ARR_Name = mkSrcModule "PrelArr"
51 pREL_FOREIGN_Name = mkSrcModule "PrelForeign"
52 pREL_STABLE_Name = mkSrcModule "PrelStable"
53 pREL_ADDR_Name = mkSrcModule "PrelAddr"
54 pREL_ERR_Name = mkSrcModule "PrelErr"
56 mONAD_Name = mkSrcModule "Monad"
57 rATIO_Name = mkSrcModule "Ratio"
58 iX_Name = mkSrcModule "Ix"
59 pREL_MAIN_Name = mkSrcModule "PrelMain"
60 mAIN_Name = mkSrcModule "Main"
61 iNT_Name = mkSrcModule "Int"
62 wORD_Name = mkSrcModule "Word"
64 pREL_GHC = mkPrelModule pREL_GHC_Name
65 pREL_BASE = mkPrelModule pREL_BASE_Name
66 pREL_ADDR = mkPrelModule pREL_ADDR_Name
67 pREL_STABLE = mkPrelModule pREL_STABLE_Name
68 pREL_IO_BASE = mkPrelModule pREL_IO_BASE_Name
69 pREL_PACK = mkPrelModule pREL_PACK_Name
70 pREL_ERR = mkPrelModule pREL_ERR_Name
73 %************************************************************************
75 \subsection{Constructing the names of tuples
77 %************************************************************************
80 mkTupNameStr, mkUbxTupNameStr :: Int -> (ModuleName, FAST_STRING)
82 mkTupNameStr 0 = (pREL_BASE_Name, SLIT("()"))
83 mkTupNameStr 1 = panic "Name.mkTupNameStr: 1 ???"
84 mkTupNameStr 2 = (pREL_TUP_Name, _PK_ "(,)") -- not strictly necessary
85 mkTupNameStr 3 = (pREL_TUP_Name, _PK_ "(,,)") -- ditto
86 mkTupNameStr 4 = (pREL_TUP_Name, _PK_ "(,,,)") -- ditto
87 mkTupNameStr n = (pREL_TUP_Name, _PK_ ("(" ++ nOfThem (n-1) ',' ++ ")"))
89 mkUbxTupNameStr 0 = panic "Name.mkUbxTupNameStr: 0 ???"
90 mkUbxTupNameStr 1 = (pREL_GHC_Name, _PK_ "(# #)") -- 1 and 0 both make sense!!!
91 mkUbxTupNameStr 2 = (pREL_GHC_Name, _PK_ "(#,#)")
92 mkUbxTupNameStr 3 = (pREL_GHC_Name, _PK_ "(#,,#)")
93 mkUbxTupNameStr 4 = (pREL_GHC_Name, _PK_ "(#,,,#)")
94 mkUbxTupNameStr n = (pREL_GHC_Name, _PK_ ("(#" ++ nOfThem (n-1) ',' ++ "#)"))