:- module bug. :- interface. :- import_module io. :- type t ---> a(int) ; b(int) ; c(int) ; d(int) ; fc(float). :- pred main(io::di, io::uo) is det. :- implementation. main(!IO) :- X = fc(123.0), X = fc(Y), Z = mkfc(123.0), Z = fc(U), io.write(Y, !IO), io.nl(!IO), io.write(U, !IO), io.nl(!IO). :- func mkfc(float::in) = (t::out(bound(fc(ground)))) is det. mkfc(F) = G :- G = fc(F).