:- module reuse1.

:- interface.

:- import_module io.

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

:- implementation.

:- type struct
    --->    struct(field_a :: int, field_b :: int).

main(!IO) :-
    S0 = struct(1, 2),
    swap(S0, S1),
    io.write(S1, !IO),
    io.nl(!IO).

:- pred swap(struct::di, struct::uo) is det.

swap(S0, S) :-
    S = S0 ^ field_a := 3.

