@@ -0,0 +1,20 @@
1+module Debug.Error
2+
3+import Language.Reflection
4+import System
5+
6+||| Terminate the program after printing a user-specified error message.
7+|||
8+||| @ loc The source location to display for the error
9+||| @ message The error to print
10+partial
11+error : {default tactics {sourceLocation} loc : SourceLocation} ->
12+ (message : String) ->
13+ a
14+error {loc = FileLoc filename (line, col) _} message =
15+ believe_me . unsafePerformIO $
16+ do let place = filename ++ " line " ++ show line ++ " column " ++ show col
17+ let message' = place ++ ": " ++ message
18+ putStrLn message'
19+ exit 1
20+