diff options
author | Simon Marlow <marlowsd@gmail.com> | 2015-11-03 14:06:09 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2015-11-13 16:06:42 +0000 |
commit | 8988be8561ce0857f3befd6ab3b6c29060685c0a (patch) | |
tree | 88848de1dd8bc6664fd0de65f9b04415a4b4cc67 /testsuite/tests | |
parent | 8868ff3eb742977c5de2609f7d748f4ff8882d6d (diff) | |
download | haskell-8988be8561ce0857f3befd6ab3b6c29060685c0a.tar.gz |
Make 'error' include the CCS call stack when profiled
Summary:
The idea here is that this gives a more detailed stack trace in two
cases:
1. With `-prof` and `-fprof-auto`
2. In GHCi (see #11047)
Example, with an error inserted in nofib/shootout/binary-trees:
```
$ ./Main 3
Main: z
CallStack (from ImplicitParams):
error, called at Main.hs:67:29 in main:Main
CallStack (from -prof):
Main.check' (Main.hs:(67,1)-(68,82))
Main.check (Main.hs:63:1-21)
Main.stretch (Main.hs:32:35-57)
Main.main.c (Main.hs:32:9-57)
Main.main (Main.hs:(27,1)-(43,42))
Main.CAF (<entire-module>)
```
This doesn't quite obsolete +RTS -xc, which also attempts to display
more information in the case when the error is in a CAF, but I'm
exploring other solutions to that.
Includes submodule updates.
Test Plan: validate
Reviewers: simonpj, ezyang, gridaphobe, bgamari, hvr, austin
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1426
Diffstat (limited to 'testsuite/tests')
35 files changed, 69 insertions, 58 deletions
diff --git a/testsuite/tests/annotations/should_fail/annfail12.stderr b/testsuite/tests/annotations/should_fail/annfail12.stderr index 37e8378a7e..303645914e 100644 --- a/testsuite/tests/annotations/should_fail/annfail12.stderr +++ b/testsuite/tests/annotations/should_fail/annfail12.stderr @@ -2,7 +2,7 @@ annfail12.hs:5:1: error: Exception when trying to run compile-time code: You were meant to see this error! -CallStack: +CallStack (from ImplicitParams): error, called at annfail12.hs:5:12 in main:Annfail12 In the annotation: {-# ANN f (error "You were meant to see this error!" :: Int) #-} diff --git a/testsuite/tests/array/should_run/arr003.stderr b/testsuite/tests/array/should_run/arr003.stderr index bffb356a6d..a0d56ed0a6 100644 --- a/testsuite/tests/array/should_run/arr003.stderr +++ b/testsuite/tests/array/should_run/arr003.stderr @@ -1,3 +1,3 @@ arr003: Ix{Int}.index: Index (4) out of range ((1,3)) -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Arr.hs:176:5 in base:GHC.Arr diff --git a/testsuite/tests/array/should_run/arr004.stderr b/testsuite/tests/array/should_run/arr004.stderr index b053770e1a..e109855a71 100644 --- a/testsuite/tests/array/should_run/arr004.stderr +++ b/testsuite/tests/array/should_run/arr004.stderr @@ -1,3 +1,3 @@ arr004: (Array.!): undefined array element -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Arr.hs:402:16 in base:GHC.Arr diff --git a/testsuite/tests/array/should_run/arr007.stderr b/testsuite/tests/array/should_run/arr007.stderr index f23cb319d9..4c02cecf6e 100644 --- a/testsuite/tests/array/should_run/arr007.stderr +++ b/testsuite/tests/array/should_run/arr007.stderr @@ -1,3 +1,3 @@ arr007: Ix{Int}.index: Index (1) out of range ((1,0)) -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Arr.hs:176:5 in base:GHC.Arr diff --git a/testsuite/tests/array/should_run/arr008.stderr b/testsuite/tests/array/should_run/arr008.stderr index b3cf392eb3..5355a07162 100644 --- a/testsuite/tests/array/should_run/arr008.stderr +++ b/testsuite/tests/array/should_run/arr008.stderr @@ -1,3 +1,3 @@ arr008: Ix{Int}.index: Index (2) out of range ((0,1)) -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Arr.hs:176:5 in base:GHC.Arr diff --git a/testsuite/tests/codeGen/should_run/T5626.stderr b/testsuite/tests/codeGen/should_run/T5626.stderr index a97f66c30e..2c02bb0a5c 100644 --- a/testsuite/tests/codeGen/should_run/T5626.stderr +++ b/testsuite/tests/codeGen/should_run/T5626.stderr @@ -1,4 +1,4 @@ T5626: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at T5626.hs:6:30 in main:Main diff --git a/testsuite/tests/codeGen/should_run/cgrun016.stderr b/testsuite/tests/codeGen/should_run/cgrun016.stderr index dba44be468..33cd2bdbdf 100644 --- a/testsuite/tests/codeGen/should_run/cgrun016.stderr +++ b/testsuite/tests/codeGen/should_run/cgrun016.stderr @@ -1,3 +1,3 @@ cgrun016: 6th call to error -CallStack: +CallStack (from ImplicitParams): error, called at cgrun016.hs:8:8 in main:Main diff --git a/testsuite/tests/codeGen/should_run/cgrun045.stderr b/testsuite/tests/codeGen/should_run/cgrun045.stderr index 4c7719b1c8..d7f8188c8b 100644 --- a/testsuite/tests/codeGen/should_run/cgrun045.stderr +++ b/testsuite/tests/codeGen/should_run/cgrun045.stderr @@ -1,3 +1,3 @@ cgrun045: hello world! -CallStack: +CallStack (from ImplicitParams): error, called at cgrun045.hs:6:13 in main:Main diff --git a/testsuite/tests/codeGen/should_run/cgrun051.stderr b/testsuite/tests/codeGen/should_run/cgrun051.stderr index 0a96a43628..432dd5649b 100644 --- a/testsuite/tests/codeGen/should_run/cgrun051.stderr +++ b/testsuite/tests/codeGen/should_run/cgrun051.stderr @@ -1,3 +1,3 @@ cgrun051: OK -CallStack: +CallStack (from ImplicitParams): error, called at cgrun051.hs:7:25 in main:Main diff --git a/testsuite/tests/codeGen/should_run/cgrun059.stderr b/testsuite/tests/codeGen/should_run/cgrun059.stderr index 15000537aa..2365a03ee5 100644 --- a/testsuite/tests/codeGen/should_run/cgrun059.stderr +++ b/testsuite/tests/codeGen/should_run/cgrun059.stderr @@ -1,3 +1,3 @@ cgrun059: Error: File not found -CallStack: +CallStack (from ImplicitParams): error, called at cgrun059.hs:12:28 in main:Main diff --git a/testsuite/tests/concurrent/should_run/conc021.stderr b/testsuite/tests/concurrent/should_run/conc021.stderr index c7348b77bd..b48a068ba7 100644 --- a/testsuite/tests/concurrent/should_run/conc021.stderr +++ b/testsuite/tests/concurrent/should_run/conc021.stderr @@ -1,3 +1,3 @@ conc021: wurble -CallStack: +CallStack (from ImplicitParams): error, called at conc021.hs:9:9 in main:Main diff --git a/testsuite/tests/deriving/should_run/T5628.stderr b/testsuite/tests/deriving/should_run/T5628.stderr index edc44bd3b1..e203374673 100644 --- a/testsuite/tests/deriving/should_run/T5628.stderr +++ b/testsuite/tests/deriving/should_run/T5628.stderr @@ -1,3 +1,3 @@ T5628: Void == -CallStack: +CallStack (from ImplicitParams): error, called at T5628.hs:5:1 in main:Main diff --git a/testsuite/tests/driver/sigof02/sigof02.stderr b/testsuite/tests/driver/sigof02/sigof02.stderr index 1dc1beb935..0fb77f6f9b 100644 --- a/testsuite/tests/driver/sigof02/sigof02.stderr +++ b/testsuite/tests/driver/sigof02/sigof02.stderr @@ -1,4 +1,4 @@ StrictMain: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at Main.hs:6:22 in main:Main diff --git a/testsuite/tests/driver/sigof02/sigof02m.stderr b/testsuite/tests/driver/sigof02/sigof02m.stderr index 1dc1beb935..0fb77f6f9b 100644 --- a/testsuite/tests/driver/sigof02/sigof02m.stderr +++ b/testsuite/tests/driver/sigof02/sigof02m.stderr @@ -1,4 +1,4 @@ StrictMain: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at Main.hs:6:22 in main:Main diff --git a/testsuite/tests/ffi/should_run/ffi008.stderr b/testsuite/tests/ffi/should_run/ffi008.stderr index 78605178a6..83999ed16e 100644 --- a/testsuite/tests/ffi/should_run/ffi008.stderr +++ b/testsuite/tests/ffi/should_run/ffi008.stderr @@ -1,3 +1,3 @@ ffi008: this is an error -CallStack: +CallStack (from ImplicitParams): error, called at ffi008.hs:12:12 in main:Main diff --git a/testsuite/tests/ffi/should_run/fptrfail01.stderr b/testsuite/tests/ffi/should_run/fptrfail01.stderr index 5193181ea9..cf29208275 100644 --- a/testsuite/tests/ffi/should_run/fptrfail01.stderr +++ b/testsuite/tests/ffi/should_run/fptrfail01.stderr @@ -1,3 +1,3 @@ fptrfail01: GHC.ForeignPtr: attempt to mix Haskell and C finalizers in the same ForeignPtr -CallStack: - error, called at libraries/base/GHC/ForeignPtr.hs:352:17 in base:GHC.ForeignPtr +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/ForeignPtr.hs:361:17 in base:GHC.ForeignPtr diff --git a/testsuite/tests/ghc-e/should_run/ghc-e005.stderr b/testsuite/tests/ghc-e/should_run/ghc-e005.stderr index 5836586c79..31194ee1a6 100644 --- a/testsuite/tests/ghc-e/should_run/ghc-e005.stderr +++ b/testsuite/tests/ghc-e/should_run/ghc-e005.stderr @@ -1,3 +1,3 @@ ghc-e005-prog: foo -CallStack: +CallStack (from ImplicitParams): error, called at ghc-e005.hs:12:10 in main:Main diff --git a/testsuite/tests/ghci.debugger/scripts/break009.stdout b/testsuite/tests/ghci.debugger/scripts/break009.stdout index 14543668a1..9a4fa56446 100644 --- a/testsuite/tests/ghci.debugger/scripts/break009.stdout +++ b/testsuite/tests/ghci.debugger/scripts/break009.stdout @@ -2,5 +2,5 @@ Breakpoint 0 activated at ../Test6.hs:5:8-11 Stopped at ../Test6.hs:5:8-11 _result :: a2 = _ *** Exception: Prelude.head: empty list -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/List.hs:999:3 in base:GHC.List diff --git a/testsuite/tests/ghci.debugger/scripts/break011.stdout b/testsuite/tests/ghci.debugger/scripts/break011.stdout index 67bbec7ce1..69cbcc4373 100644 --- a/testsuite/tests/ghci.debugger/scripts/break011.stdout +++ b/testsuite/tests/ghci.debugger/scripts/break011.stdout @@ -1,5 +1,5 @@ *** Exception: foo -CallStack: +CallStack (from ImplicitParams): error, called at <interactive>:2:1 in interactive:Ghci1 Stopped at <exception thrown> _exception :: e = _ @@ -21,17 +21,17 @@ already at the beginning of the history _exception = SomeException (ErrorCallWithLocation "foo" - "CallStack: + "CallStack (from ImplicitParams): error, called at ../Test7.hs:2:18 in main:Main") _result :: a14 = _ _exception :: SomeException = SomeException (ErrorCallWithLocation "foo" - "CallStack: + "CallStack (from ImplicitParams): error, called at ../Test7.hs:2:18 in main:Main") *** Exception: foo -CallStack: +CallStack (from ImplicitParams): error, called at ../Test7.hs:2:18 in main:Main *** Exception: foo -CallStack: +CallStack (from ImplicitParams): error, called at ../Test7.hs:2:18 in main:Main diff --git a/testsuite/tests/ghci.debugger/scripts/break017.stdout b/testsuite/tests/ghci.debugger/scripts/break017.stdout index 4825e435bb..2bc2c23837 100644 --- a/testsuite/tests/ghci.debugger/scripts/break017.stdout +++ b/testsuite/tests/ghci.debugger/scripts/break017.stdout @@ -8,7 +8,7 @@ Printing 1 as = 'b' : 'c' : (_t1::[Char]) Forcing *** Exception: Prelude.undefined -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err undefined, called at <interactive>:3:17 in interactive:Ghci1 Printing 2 diff --git a/testsuite/tests/ghci/scripts/T10501.stderr b/testsuite/tests/ghci/scripts/T10501.stderr index b9e45ccc66..7fffbe8231 100644 --- a/testsuite/tests/ghci/scripts/T10501.stderr +++ b/testsuite/tests/ghci/scripts/T10501.stderr @@ -1,7 +1,7 @@ *** Exception: Prelude.head: empty list -CallStack: - error, called at libraries/base/GHC/List.hs:1009:3 in base:GHC.List +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/List.hs:999:3 in base:GHC.List *** Exception: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at <interactive>:1:17 in interactive:Ghci1 diff --git a/testsuite/tests/ghci/scripts/T5557.stdout b/testsuite/tests/ghci/scripts/T5557.stdout index aa3a83242e..86df6ab67c 100644 --- a/testsuite/tests/ghci/scripts/T5557.stdout +++ b/testsuite/tests/ghci/scripts/T5557.stdout @@ -1,8 +1,8 @@ *** Exception: Prelude.undefined -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err undefined, called at <interactive>:2:12 in interactive:Ghci1 *** Exception: Prelude.undefined -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err undefined, called at <interactive>:3:12 in interactive:Ghci1 diff --git a/testsuite/tests/ghci/scripts/ghci055.stdout b/testsuite/tests/ghci/scripts/ghci055.stdout index 03245e2097..d57430bb8c 100644 --- a/testsuite/tests/ghci/scripts/ghci055.stdout +++ b/testsuite/tests/ghci/scripts/ghci055.stdout @@ -1,5 +1,5 @@ *** Exception: Prelude.undefined -CallStack: +CallStack (from ImplicitParams): error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err undefined, called at <interactive>:1:7 in interactive:Ghci1 x :: t = _ diff --git a/testsuite/tests/profiling/should_run/ioprof.stderr b/testsuite/tests/profiling/should_run/ioprof.stderr index 3910245347..db9c36bbe3 100644 --- a/testsuite/tests/profiling/should_run/ioprof.stderr +++ b/testsuite/tests/profiling/should_run/ioprof.stderr @@ -1,3 +1,14 @@ ioprof: a -CallStack: +CallStack (from ImplicitParams): error, called at ioprof.hs:23:22 in main:Main +CallStack (from -prof): + Main.errorM.\ (ioprof.hs:23:22-28) + Main.errorM (ioprof.hs:23:1-28) + Main.foo (ioprof.hs:34:1-16) + Main.>>=.\ (ioprof.hs:(11,27)-(12,50)) + Main.>>= (ioprof.hs:(11,3)-(12,50)) + Main.<*> (ioprof.hs:20:5-14) + Main.bar (ioprof.hs:31:1-20) + Main.runM (ioprof.hs:26:1-37) + Main.main (ioprof.hs:28:1-43) + Main.CAF (<entire-module>) diff --git a/testsuite/tests/safeHaskell/safeLanguage/SafeLang09.stderr b/testsuite/tests/safeHaskell/safeLanguage/SafeLang09.stderr index f752129770..974af21631 100644 --- a/testsuite/tests/safeHaskell/safeLanguage/SafeLang09.stderr +++ b/testsuite/tests/safeHaskell/safeLanguage/SafeLang09.stderr @@ -1,3 +1,3 @@ SafeLang09: This curry is poisoned! -CallStack: +CallStack (from ImplicitParams): error, called at ./SafeLang09_B.hs:14:13 in main:SafeLang09_B diff --git a/testsuite/tests/simplCore/should_fail/T7411.stderr b/testsuite/tests/simplCore/should_fail/T7411.stderr index 59c0617e9b..6fc6a22560 100644 --- a/testsuite/tests/simplCore/should_fail/T7411.stderr +++ b/testsuite/tests/simplCore/should_fail/T7411.stderr @@ -1,4 +1,4 @@ T7411: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at T7411.hs:3:25 in main:Main diff --git a/testsuite/tests/simplCore/should_run/T457.stderr b/testsuite/tests/simplCore/should_run/T457.stderr index 983c8dba39..c84855e500 100644 --- a/testsuite/tests/simplCore/should_run/T457.stderr +++ b/testsuite/tests/simplCore/should_run/T457.stderr @@ -1,3 +1,3 @@ T457: Correct -CallStack: +CallStack (from ImplicitParams): error, called at T457.hs:5:22 in main:Main diff --git a/testsuite/tests/simplCore/should_run/T5587.stderr b/testsuite/tests/simplCore/should_run/T5587.stderr index d98a36d986..069d08d055 100644 --- a/testsuite/tests/simplCore/should_run/T5587.stderr +++ b/testsuite/tests/simplCore/should_run/T5587.stderr @@ -1,3 +1,3 @@ T5587: hidden error -CallStack: +CallStack (from ImplicitParams): error, called at T5587.hs:7:15 in main:Main diff --git a/testsuite/tests/simplCore/should_run/T5625.stderr b/testsuite/tests/simplCore/should_run/T5625.stderr index f272d99787..fe02e7e6a8 100644 --- a/testsuite/tests/simplCore/should_run/T5625.stderr +++ b/testsuite/tests/simplCore/should_run/T5625.stderr @@ -1,4 +1,4 @@ T5625: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at T5625.hs:3:31 in main:Main diff --git a/testsuite/tests/stranal/should_run/strun002.stderr b/testsuite/tests/stranal/should_run/strun002.stderr index 2e2f85b780..735b981a88 100644 --- a/testsuite/tests/stranal/should_run/strun002.stderr +++ b/testsuite/tests/stranal/should_run/strun002.stderr @@ -1,3 +1,3 @@ strun002: Variable not found: (2) hello -CallStack: +CallStack (from ImplicitParams): error, called at strun002.hs:7:11 in main:Main diff --git a/testsuite/tests/th/T5358.stderr b/testsuite/tests/th/T5358.stderr index 695c69e3d9..4a17272310 100644 --- a/testsuite/tests/th/T5358.stderr +++ b/testsuite/tests/th/T5358.stderr @@ -2,7 +2,7 @@ T5358.hs:14:12: error: Exception when trying to run compile-time code: runTest called error: forall (t_0 :: *) . t_0 -> GHC.Types.Bool -CallStack: +CallStack (from ImplicitParams): error, called at T5358.hs:15:18 in main:T5358 Code: do { VarI _ t _ <- reify (mkName "prop_x1"); ($) error ((++) "runTest called error: " pprint t) } diff --git a/testsuite/tests/th/T5976.stderr b/testsuite/tests/th/T5976.stderr index f434458a01..507d9d8b8d 100644 --- a/testsuite/tests/th/T5976.stderr +++ b/testsuite/tests/th/T5976.stderr @@ -2,6 +2,6 @@ T5976.hs:1:1: error: Exception when trying to run compile-time code: bar -CallStack: +CallStack (from ImplicitParams): error, called at T5976.hs:3:21 in main:Main Code: error ((++) "foo " error "bar") diff --git a/testsuite/tests/th/T8987.stderr b/testsuite/tests/th/T8987.stderr index 6df4f7d4ec..1af2e29b7f 100644 --- a/testsuite/tests/th/T8987.stderr +++ b/testsuite/tests/th/T8987.stderr @@ -2,7 +2,7 @@ T8987.hs:1:1: error: Exception when trying to run compile-time code: Prelude.undefined -CallStack: - error, called at libraries/base/GHC/Err.hs:42:14 in base:GHC.Err +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/Err.hs:43:14 in base:GHC.Err undefined, called at T8987.hs:6:23 in main:T8987 Code: (>>) reportWarning ['1', undefined] return [] diff --git a/testsuite/tests/th/TH_exn2.stderr b/testsuite/tests/th/TH_exn2.stderr index fb914289a3..b4d5b8df84 100644 --- a/testsuite/tests/th/TH_exn2.stderr +++ b/testsuite/tests/th/TH_exn2.stderr @@ -2,7 +2,7 @@ TH_exn2.hs:1:1: error: Exception when trying to run compile-time code: Prelude.tail: empty list -CallStack: - error, called at libraries/base/GHC/List.hs:1009:3 in base:GHC.List +CallStack (from ImplicitParams): + error, called at libraries/base/GHC/List.hs:999:3 in base:GHC.List Code: do { ds <- [d| |]; return (tail ds) } diff --git a/testsuite/tests/typecheck/should_run/IPLocation.stdout b/testsuite/tests/typecheck/should_run/IPLocation.stdout index 47de194981..d02250f8de 100644 --- a/testsuite/tests/typecheck/should_run/IPLocation.stdout +++ b/testsuite/tests/typecheck/should_run/IPLocation.stdout @@ -1,24 +1,24 @@ -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:8:31 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:12:31 in main:Main f1, called at IPLocation.hs:40:11 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:16:34 in main:Main f2, called at IPLocation.hs:41:11 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:17:34 in main:Main f2, called at IPLocation.hs:41:11 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:42:48 in main:Main x, called at IPLocation.hs:22:8 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:43:48 in main:Main x, called at IPLocation.hs:27:8 in main:Main f4, called at IPLocation.hs:43:11 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc3, called at IPLocation.hs:44:48 in main:Main -CallStack: +CallStack (from ImplicitParams): ?loc, called at IPLocation.hs:35:33 in main:Main f6, called at IPLocation.hs:36:8 in main:Main f6, called at IPLocation.hs:36:8 in main:Main |