:- module crash.

:- interface.
:- import_module io.
:- pred main(io::di,io::uo) is det.

:- implementation.

:- type f ---> f(int,int).

:- mutable(a,f,init_a,ground,[constant]).
:- mutable(b,f,init_b,ground,[constant]).

:- func init_a = f.
:- func init_b = f.

init_a = A :-
    get_b(A).
init_b = B :-
    get_a(B).

main(!IO) :-
    write_string("a = ",!IO),
    get_a(A),
    write(A,!IO),
    nl(!IO),
    write_string("b = ",!IO),
    get_b(B),
    write(B,!IO),
    nl(!IO).

