:- module maybe.
:- interface.
:- type maybe_error
	--->	ok 
	;	error(string).
:- type maybe(T)
	--->	no 
	;	yes(T).
:- type maybe_error(T) == maybe.maybe_error(T, string).
:- type maybe_error(T, E)
	--->	ok(T)
	;	error(E).
:- inst (maybe(I)) == bound(no ; yes(I)).
:- inst (maybe_error(I)) == bound(error(ground) ; ok(I)).
:- inst (maybe_error_ok(I)) == bound(ok(I)).
:- inst (maybe_yes(I)) == bound(yes(I)).
