Create `suffixes` Function on List
Looks good to me. The only thing I would change is


suffixes [] = [] : []



to

suffixes [] = [[]]


as it's a bit more readable.

When re-inventing functions, it can be instructive to look up their definition using Hoogle. Following the links, we find this definition in Data.List:

tails                   :: [a] -&gt; [[a]]
tails xs                =  xs : case xs of
                                  []      -&gt; []
                                  _ : xs' -&gt; tails xs'