3 / /_\// /_/ / / | | GHC Interactive, version 5.03, for Haskell 98.
4 / /_\\/ __ / /___| | http://www.haskell.org/ghc/
5 \____/\/ /_/\____/|_| Type :? for help.
7 Loading package std ... linking ... done.
10 Prelude> -- A small multi-module program, with 4 modules, Main, B, C, D. B & C
11 Prelude> -- depend on D, and A depends on B & C.
13 Prelude> -- This test will try various combinations of compiled and interpreted
14 Prelude> -- versions of each module, and make sure each combination behaves
18 Prelude> :! rm *.o *.hi
19 Prelude> :! cp D1.hs D.hs
22 Ok, modules loaded: Main, B, C, D.
28 Main> -- sigh; sleep 1, because the filesystem only stores times in seconds
29 Main> :! sleep 1; cp D2.hs D.hs
31 Ok, modules loaded: Main, B, C, D.
32 Main> :type (Main.a,B.b,C.c,D.d)
33 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
37 Main> -- compile D, check that :reload doesn't pick it up
38 Main> :! $HC $HC_OPTS -c D.hs
40 Ok, modules loaded: Main, B, C, D.
41 Main> :type (Main.a,B.b,C.c,D.d)
42 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
46 Main> -- pick up the compiled D now, with :load
48 Ok, modules loaded: Main, B, C, D.
49 Main> :type (Main.a,B.b,C.c,D.d)
50 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
55 Main> :! $HC $HC_OPTS -c C.hs
57 Ok, modules loaded: Main, B, C, D.
58 Main> :type (Main.a,B.b,C.c,D.d)
59 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
63 Main> -- D,C,B compiled
64 Main> :! $HC $HC_OPTS -c B.hs
66 Ok, modules loaded: Main, B, C, D.
67 Main> :type (Main.a,B.b,C.c,D.d)
68 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
72 Main> -- D,C,B,A compiled
73 Main> :! $HC $HC_OPTS -c A.hs
75 Ok, modules loaded: Main, B, C, D.
76 Main> :type (Main.a,B.b,C.c,D.d)
77 (PrelFloat.Float -> PrelFloat.Float,
78 PrelFloat.Float -> PrelFloat.Float,
79 PrelFloat.Float -> PrelFloat.Float,
80 PrelFloat.Float -> PrelFloat.Float)
84 Main> -- D,C,A compiled (better not use A.o)
87 Ok, modules loaded: Main, B, C, D.
88 Main> :type (Main.a,B.b,C.c,D.d)
89 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
93 Main> -- D,A compiled (better not use A.o)
96 Ok, modules loaded: Main, B, C, D.
97 Main> :type (Main.a,B.b,C.c,D.d)
98 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
102 Main> -- A compiled (better not use A.o)
105 Ok, modules loaded: Main, B, C, D.
106 Main> :type (Main.a,B.b,C.c,D.d)
107 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)
111 Main> -- A,B,C compiled (better not use A.o, B.o, C.o)
112 Main> :! $HC $HC_OPTS --make A
115 Ok, modules loaded: Main, B, C, D.
116 Main> :type (Main.a,B.b,C.c,D.d)
117 (Float -> Float, Float -> Float, Float -> Float, Float -> Float)