Hints for list_equal.

• If left is [], what does right have to be for left and right to be equal? (Come on, it's not too hard, you can figure it out.)

• Suppose on the other hand that left has head left_hd and tail left_tl.

1. If right is then [], are left and right equal?
2. If right isn't [], and its head isn't equal to left_hd, are left and right equal?
3. If right isn't [] and its head is equal to left_hd, what else has to be the case for left and right to be equal?

• Can you now write a recursive definition of the list_equal function? What's your base case?