Improve `isHappy`

I think this an improvement since 1) it uses Course.List instead of Prelude.List
and 2) it uses `firstRepeat` which already contains most of the ideas.