-- Case 3: parent and uncle are red. Paint them both black and paint 
-- grandparent red. Then move focus to the grandparent and balance.
balance (n, (Path L pv Red po):(Path L gv gc (Node uv Red ul ur)):path) =
    balance (Node gv Red (Node pv Black n po) (Node uv Black ul ur), path)
balance (n, (Path L pv Red po):(Path L gv gc (Node uv Red ul ur)):path) =
    balance (Node gv Red (Node pv Black n po) (Node uv Black ul ur), path)
balance (n, (Path L pv Red po):(Path L gv gc (Node uv Red ul ur)):path) =
    balance (Node gv Red (Node pv Black n po) (Node uv Black ul ur), path)