<div dir="ltr">Unfortunately that was a simplified example. The in the program I'm writing, the type isn't Number but (All (A B) ((A -> B) -> (A -> B))), which I can't check for with a predicate as far as I know.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jan 26, 2014 at 2:31 PM, Eric Dobson <span dir="ltr"><<a href="mailto:eric.n.dobson@gmail.com" target="_blank">eric.n.dobson@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That is definitely a bug, not sure exactly what is going wrong though.<br>
Can you file a bug for this?<br>
<br>
In terms of getting your program to run, if you replace '(not<br>
(parameter? p))' with 'number?' it should work.<br>
<div><div class="h5"><br>
On Sun, Jan 26, 2014 at 10:08 AM, Spencer Florence <<a href="mailto:spencer@florence.io">spencer@florence.io</a>> wrote:<br>
> I'm having difficulty getting the following code to type:<br>
><br>
> #lang typed/racket<br>
> (: test : ((U Number (Parameterof Number)) -> Number))<br>
> (define (test p)<br>
>   (if (not (parameter? p))<br>
>       p<br>
>       (p)))<br>
><br>
> But I get the error:<br>
>> Type Checker: Expected Number, but got (U Complex (Parameterof Number))<br>
>> in: p<br>
> On the then branch of the if. Is there a way to convince this to type?<br>
><br>
> --Spencer<br>
><br>
</div></div>> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
><br>
</blockquote></div><br></div>