src/Pure/ML/exn_output.ML
author wenzelm
Wed, 17 Feb 2016 23:15:47 +0100
changeset 62355 00f7618a9f2b
parent 62354 src/Pure/ML/exn_output_polyml.ML@fdd6989cc8a0
child 62357 ab76bd43c14a
permissions -rw-r--r--
clarified file names;

(*  Title:      Pure/ML/exn_output.ML
    Author:     Makarius

Auxiliary operations for exception output.
*)

signature EXN_OUTPUT =
sig
  val position: exn -> Position.T
  val pretty: exn -> Pretty.T
end;

structure Exn_Output: EXN_OUTPUT =
struct

fun position exn =
  (case PolyML.exceptionLocation exn of
    NONE => Position.none
  | SOME loc => Exn_Properties.position_of loc);

fun pretty (exn: exn) =
  Pretty.from_ML (pretty_ml (PolyML.prettyRepresentation (exn, ML_Options.get_print_depth ())));

end;