||Introduction to Haskell, Part 2: Pure Functions|
What I find confusing about the code you posted is not related to Haskell but to the order it is written: it's as annoying as reading people top-posting in Usenet..
total cart = subtotal + tax
subtotal = sum cart
taxable = filter isTaxable cart
tax = (sum taxable) * taxRate