<div dir="ltr"><div><div><div><div>Awesome!<br><br></div>The weirdness in execute_test/2 is a result of me chopping out everything that wasn't needed to repro the compiler error.   The original was similar to what you have suggested.<br><br></div>I notice the fix comes as an inst declaration and then specifying that inst on the mode for execute_test.   So is it not possible to assign the inst of the pred on a type to a type?<br><br></div>Thanks again everyone!! I've been fighting with this since last night.<br><br><br></div>Charles</div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jun 28, 2015 at 1:07 AM, Tomas By <span dir="ltr"><<a href="mailto:tomas@basun.net" target="_blank">tomas@basun.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sun, June 28, 2015 02:56, Charles Shuller wrote:<br>
> Also does not work.<br>
<br>
The attached version compiles.<br>
<br>
This bit:<br>
<br>
| execute_test(Test, Disposition) :-<br>
|   call(Test^test_pred, Disposition),<br>
|   Disposition = fail(Test^test_name ++ " Failed to execute").<br>
<br>
is strange - Disposition is an out parameter, and you seem to be trying to<br>
assign a value to it twice. My version just ignores the return value of<br>
the call.<br>
<br>
You could do something like:<br>
<br>
| execute_test(Test, Disposition) :-<br>
|   call(Test^test_pred, D),<br>
|   ( D = pass -><br>
|     Disposition = pass<br>
|   ; Disposition = fail(Test^test_name ++ " Failed to execute") ).<br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
/Tomas<br>
</font></span></blockquote></div><br></div>