% vim: ft=mercury ts=4 sw=4 et

% Build in a pregen grade, e.g. hlc.gc.pregen

:- module bar_baz.
:- interface.

:- import_module io.

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

:- implementation.

:- type foo
    --->    bar_f(float)
    ;       baz_i(int64).

main(!IO) :-
    get_fx(FX),
    io.write(FX, !IO),
    io.nl(!IO),

    get_fy(456.78, FY),
    io.write(FY, !IO),
    io.nl(!IO),

    get_ix(IX),
    io.write(IX, !IO),
    io.nl(!IO),

    get_iy(456i64, IY),
    io.write(IY, !IO),
    io.nl(!IO).

:- pred get_fx(foo::out) is det.

get_fx(bar_f(123.45)).

:- pred get_fy(float::in, foo::out) is det.

get_fy(F, bar_f(F)).

:- pred get_ix(foo::out) is det.

get_ix(baz_i(123i64)).

:- pred get_iy(int64::in, foo::out) is det.

get_iy(N, baz_i(N)).
