:- module exception.
:- interface.
:- import_module io.
:- import_module list.
:- import_module maybe.
:- import_module stm_builtin.
:- import_module store.
:- import_module univ.
:- type near_stack_limits
	--->	near_stack_limits .
:- type software_error
	--->	software_error(string).
:- type exception_result(T)
	--->	succeeded(T)
	;	failed 
	;	exception(univ.univ).
:- inst ([]) == bound([]).
:- inst (cannot_fail) == bound(exception(ground) ; succeeded(ground)).
:- inst (nil_or_singleton_list) == bound([] ; '[|]'(ground, (exception.[]))).
