Assuming that foo is a valid list, the expression fp.isEq( fp.hd(foo), fp.hd( fp.tl(foo) ) ) ...

... could crash or return true or false.
  • ... can only return true.
  • ... can only return false.
  • ... can only crash.
  • ... could return true or false, but it could not crash.

Review the API for the three functions involved.

Consider all possible relevant cases for the value of foo.