<div dir="ltr">I have a function:<div><br></div><div>walk ([I|Is], [Elt|_]=Ts) when (not is_tuple(Elt)) andalso ?IS_INDEX(I) -></div><div>   Element = index_to_element(I,Ts),</div><div>   case </div><div>       ... snip ...</div><div>   end.</div><div><br></div><div>This function clause gets executed even though Elt is a tuple. </div><div><br></div><div>I have a break point within this function clause. I am looking at the </div><div>debugger at the break-point within the clause, and I can plainly see that Elt</div><div>IS a tuple: within the debugger I can evaluate is_tuple(Elt) and it returns true,</div><div>I can evaluate (not is_tuple(Elt)) and correctly get FALSE.</div><div><br></div><div>So.... how can I be in this clause when the guard evaluates to false?</div><div><br></div><div>Thoughts?</div><div><br></div></div>