Statutory Warning: Spoilers ahead!
Finally, we have a one-liner:
euler29 = length $ L.nub $ [a ^ b | a <- [2 .. 100], b <- [2 .. 100]]
P.S. I did make a dumb error by initiall writing this as two functions, with the second one taking
Int instead of
Integer, which (I’m disappointed to say) resulted in everything silently overflowing to negative numbers.