Hi Lindsay, strictly speaking, yes all Haskell functions take one argument, including type functions. This subtle point becomes important when partially applying those functions. Specifically, we apply one argument, then might receive a function in return, to which we apply one argument, and so on. Where it becomes important is in expressions, such as:
(++) = flip (foldRight (:.))
What does it mean to apply foldRight to (:.) and then flip that function? This only makes sense if we apply a strict interpretation, all functions take one argument, including the one that comes back after we apply foldRight to (:.) and then again when we flip that resulting function.