--- /dev/null
+ ___ ___ _
+ / _ \ /\ /\/ __(_)
+ / /_\// /_/ / / | | GHC Interactive, version 4.11, For Haskell 98.
+/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
+\____/\/ /_/\____/|_| Type :? for help.
+
+Loading package std ... linking ... done.
+Prelude> :unset +s +t
+Prelude> -- test importing a module from a package
+Prelude> :l ghci004
+Ok, modules loaded: Main.
+Main> main
+[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]
+Main> Leaving GHCi.
Compiling D ( D.hs, interpreted )
-Compiling C ( C.hs, interpreted )
Compiling B ( B.hs, interpreted )
+Compiling C ( C.hs, interpreted )
Compiling Main ( A.hs, interpreted )
Compiling D ( D.hs, interpreted )
-Compiling C ( C.hs, interpreted )
Compiling B ( B.hs, interpreted )
+Compiling C ( C.hs, interpreted )
Compiling Main ( A.hs, interpreted )
Skipping D ( D.hs, D.o )
-Compiling C ( C.hs, interpreted )
Compiling B ( B.hs, interpreted )
+Compiling C ( C.hs, interpreted )
Compiling Main ( A.hs, interpreted )
Skipping D ( D.hs, D.o )
-Skipping C ( C.hs, C.o )
Compiling B ( B.hs, interpreted )
+Skipping C ( C.hs, C.o )
Compiling Main ( A.hs, interpreted )
Skipping D ( D.hs, D.o )
-Skipping C ( C.hs, C.o )
Skipping B ( B.hs, B.o )
+Skipping C ( C.hs, C.o )
Compiling Main ( A.hs, interpreted )
Skipping D ( D.hs, D.o )
-Skipping C ( C.hs, C.o )
Skipping B ( B.hs, B.o )
+Skipping C ( C.hs, C.o )
Skipping Main ( A.hs, ./A.o )
Skipping D ( D.hs, D.o )
-Skipping C ( C.hs, C.o )
Compiling B ( B.hs, interpreted )
+Skipping C ( C.hs, C.o )
Compiling Main ( A.hs, interpreted )
Skipping D ( D.hs, D.o )
-Compiling C ( C.hs, interpreted )
Compiling B ( B.hs, interpreted )
+Compiling C ( C.hs, interpreted )
Compiling Main ( A.hs, interpreted )
Compiling D ( D.hs, interpreted )
-Compiling C ( C.hs, interpreted )
Compiling B ( B.hs, interpreted )
+Compiling C ( C.hs, interpreted )
Compiling Main ( A.hs, interpreted )
ghc: chasing modules from: A
Compiling D ( D.hs, D.o )
-Compiling C ( C.hs, C.o )
Compiling B ( B.hs, B.o )
+Compiling C ( C.hs, C.o )
Compiling Main ( A.hs, ./A.o )
ghc: linking ...
Compiling D ( D.hs, interpreted )
-Compiling C ( C.hs, interpreted )
Compiling B ( B.hs, interpreted )
+Compiling C ( C.hs, interpreted )
Compiling Main ( A.hs, interpreted )
Prelude> :! cp D1.hs D.hs
Prelude>
Prelude> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type a
Int -> Int
Main> a 42
Main> -- sigh; sleep 1, because the comp manager only stores times in seconds
Main> :! sleep 1; cp D2.hs D.hs
Main> :reload
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> -- compile D, check that :reload doesn't pick it up
Main> :! $HC $HC_OPTS -c D.hs
Main> :reload
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main>
Main> -- pick up the compiled D now, with :load
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> -- D,C compiled
Main> :! $HC $HC_OPTS -c C.hs
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> -- D,C,B compiled
Main> :! $HC $HC_OPTS -c B.hs
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> -- D,C,B,A compiled
Main> :! $HC $HC_OPTS -c A.hs
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(PrelFloat.Float -> PrelFloat.Float,
PrelFloat.Float -> PrelFloat.Float,
Main> -- D,C,A compiled (better not use A.o)
Main> :! rm B.o
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> -- D,A compiled (better not use A.o)
Main> :! rm C.o
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> -- A compiled (better not use A.o)
Main> :! rm D.o
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42
Main> :! $HC $HC_OPTS --make A
Main> :! rm D.o
Main> :load A
-Ok, modules loaded: Main, B, C, D.
+Ok, modules loaded: Main, C, B, D.
Main> :type (Main.a,B.b,C.c,D.d)
(Float -> Float, Float -> Float, Float -> Float, Float -> Float)
Main> a 42