<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hello,<div class=""><br class=""></div><div class="">I would like to create a predicate called <i class="">small</i> which works for the <i class="">cat</i> and <i class="">dog</i><span style="font-style: normal;" class=""> types show below.</span></div><div class=""><br class=""></div><div class="">I’ve tried to create a generic predicate, but to no avail:</div><div class=""><br class=""></div><div class=""><div class=""><i class="">:- pred cat(T::out) is multi.</i></div><div class=""><i class="">cat(X) :- small(X).</i></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Any help would be much appreciated.</div><div class=""><br class=""></div><div class="">Many thanks.</div><div class=""><br class=""></div><div class="">Philippe</div><div class=""><br class=""></div><div class="">-----------------------------------------------------------------------------------</div><div class=""><br class=""></div><div class=""><div class=""><i class="">:- implementation.</i></div><div class=""><i class=""><br class=""></i></div><div class=""><i class="">:- type cat</i></div><div class=""><i class="">        --->  bill</i></div><div class=""><i class="">        ;     harry</i></div><div class=""><i class="">        ;     mary</i></div><div class=""><i class="">        ;     steve.</i></div><div class=""><i class=""><br class=""></i></div><div class=""><i class="">:- type dog</i></div><div class=""><i class="">        --->  fido</i></div><div class=""><i class="">        ;     fred</i></div><div class=""><i class="">        ;     henry</i></div><div class=""><i class="">        ;     jane</i></div><div class=""><i class="">        ;     rover</i></div><div class=""><i class="">        ;     tom.</i></div><div class=""><i class=""><br class=""></i></div><div class=""><i class="">:- pred cat(cat::out) is multi.</i></div><div class=""><i class="">cat(Cat) :- small(Cat).</i></div><div class=""><i class=""><br class=""></i></div><div class=""><i class="">:- pred dog(dog::out) is multi.</i></div><div class=""><i class="">dog(Dog) :- small(Dog).</i></div><div class=""><i class=""><br class=""></i></div><div class=""><i class="">:- pred small(cat).</i></div><div class=""><i class="">:- mode small(in) is semidet.</i></div><div class=""><i class="">:- mode small(out) is multi.</i></div><div class=""><i class="">small(steve).</i></div><div class=""><i class="">small(harry).</i></div></div></body></html>