Did a little more testing using optimization_test_1.hs. -O3 is pretty much magic.
Solved string_list.
Solved ugly_numbers.
Altered the solution to ugly_numbers.hs to trade speed for memory efficiency. I like this solution much less.