<div dir="ltr"><font face="arial, sans-serif">The end of your error message:</font><div><font face="arial, sans-serif"><br></font></div><div><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif">>       |
>    63 | pattern Any a <- Some a
>       |                       ^
</font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif">Appears to have program text (a mono-directional pattern binding) that doesn't correspond to the program text you quote.</font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif">Whereas</font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif">>    pattern Any :: forall a. a -> Some</font></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif">>    pattern Any a = Some
</font></pre><font face="arial, sans-serif"><br class="gmail-Apple-interchange-newline">Is a implicitly bi-directional pattern binding that will never work. (The free var `a` on LHS does not appear in RHS.)</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">I'm suspecting the explicit forall is not much to do with it.</font></div><div><font face="arial, sans-serif"><br></font></div></div>