Solution
= Solution
Compose the three <functions>:
``
reverse :: [a] -> [a]
reverse = abs . rev . rep
``
The representation built by `rep` has $2n+1$ constructors. `rev` preserves that count, and `abs` traverses it once. Their three linear bounds add to \b[$\Theta(n+1)$ total time], improving the direct quadratic reversal. The correctness equations for representation, reversal and abstraction compose to the required reversed <list>.