Count numbers whose digits are only increasing or decreasing
Here's a version of your list of lists version using list comprehension and no !! and no explicit recursion:

total 0 = 1
total n = sum
  [ sum (init decgn) + sum (tail decgn) - 9
  | decgn &lt;- take n $ iterate (scanl1 (+)) $ replicate 10 1
  ] + 1


This can probably be reduced further because either of us introduced some unneeded numerical operation somewhere.