:- module solver_type_name.
:- interface.

:- import_module io.

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

:- implementation.

:- import_module type_desc.

main(!IO) :-
	new_foo(300, X),
	io.write_string("The type of X is ", !IO),
	io.write_string(type_name(type_of(X)), !IO),
	io.nl(!IO).

:- solver type foo
	where 	representation is int.

:- pred new_foo(int::in, foo::oa) is det.

new_foo(X, Y) :-
	promise_pure (
		impure Y = 'representation to any foo/0'(X)
	).



