úÎ ^ÿFnon-portable (requires an 'assert' that produces location information) experimentaldons@cse.unsw.edu.auA wrapper type for the  token. A location-emitting  call. It behaves like , but  takes an 1 token as an argument, producing a located error  message.  ! failure assert "no such thing."  From GHCi:  5 *** Exception: <interactive>:1:8-13: no such thing.  Or compiled: & a.out: A.hs:18:12-17: no such thing. A location-emitting & call. It returns its third argument, > emitting a located trace message to stderr as a side effect.  For example:  # trace assert "made it here" (1+2) Will produce: % <interactive>:1:21-26: made it here  3 7 wraps a pure, partial function in a location-emitting D handler, should an exception be thrown. So instead of producing an  anonymous call to ), a location will be tagged to the error  message.   check assert $ head [] Will produce: ? *** Exception: <interactive>:1:6-11: Prelude.head: empty list 6 wraps an IO function in a location-emitting handler, E should an exception be thrown. So instead of producing an anonymous  call to 2, a location will be tagged to the error message.  * do x <- checkIO assert (readFile "/foo")  x Will produce: G "*** Exception: <interactive>:1:13-18: /foo: openFile: does not exist    loch-0.2Debug.Trace.LocationbaseControl.Exception.BasePreludeAssertfailuretracecheckcheckIOGHC.BaseassertGHC.Errerror