Solve Problem 61 in Haskell
Intuitive function name
Rewrite convoluted recursion in neat monadic form
Recurrences will not allow me to avoid knowing n

It would be slightly more efficient to generate the next figurate number from the current without knowing n, but it appears to be impossible. For example: tri n = tri (n-1) + n
Alternate solution using functions and a list comprehension
Alternate solution using functions and a list comprehension (reverted from commit cd5015dfa6acd183940781eed4459d8d0766c0ba)

It was arguably harder to understand.
Whitespace
Remove redundant take
Inline the range function
Break up a long line
"all" with a function is more intuitive than "and"
Check cyclic via div and mod for speed
Inline overlaps check
Move the range filter