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`.
- If `right` is then `[]`, are `left` and `right` equal?
- If `right` isn't `[]`, and its head isn't equal to `left_hd`, are `left` and `right` equal?
- 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?