define class <T> (<object>) end class <T>; define class <M>
(<T>) end class
<M>; define class <B> (<M>) end class <B>;
define class <U> (<object>) end class <U>; define method cv(u
:: <U>, t :: <T>)
format-out("cv(T) in U\n");
end method; define method ctv(u :: <U>, t :: <B>)
format-out("ctv(B) in U\n");
end method;
define class <D> (<U>) end class <D>; define method cv(d ::
<D>, m :: <M>)
format-out("cv(M) in D\n");
end method; define method ctv(d :: <D>, m :: <M>)
format-out("ctv(M) in D\n");
end method;
begin
main(make(<U>),make(<D>),make(<B>),make(<M>), make(<T>));
end;
\\ run
-- first test suite
cv(T) in U
cv(T) in U
cv(T) in U
Dylan error: No applicable method, applying {<generic-function>:ctv
(<object>,
<object>) => (#rest <object>)} to #[{<u>}, {<t>}].
Dylan error: No applicable method, applying {<generic-function>:
ctv (<object>,
<object>) => (#rest <object>)} to #[{<u>}, {<m>}].
ctv(B) in U
-- second test suite
cv(T) in U
cv(M) in D
cv(M) in D
Dylan error: No applicable method, applying {<generic-function>:
ctv (<object>,
<object>) => (#rest <object>)} to #[{<d>}, {<t>}].
ctv(M) in D
ctv(M) in D
-- third test suite
cv(T) in U
cv(M) in D
cv(M) in D
Dylan error: No applicable method, applying {<generic-function>:
ctv (<object>,
<object>) => (#rest <object>)} to #[{<d>}, {<t>}].
ctv(M) in D
ctv(M) in D