:- module f2. :- interface. :- import_module list. :- type foo ---> foo(int). :- typeclass cons(T) where [ pred cons(T::in, list(string)::in, list(string)::out) is det ]. :- instance cons(foo). :- implementation. :- import_module string. :- instance cons(foo) where [ cons(foo(X), A, [S | A]) :- string.format("%d", [i(X)], S) ]. % vim: ft=mercury ts=4 sts=4 sw=4 et