balance (Node nv nc nl nr, (Path L pv Red pr):(Path R gv gc u):path) =
  balance (Node pv Red nr pr, (Path R nv Red nl):(Path R gv gc u):path)
balance (Node nv nc nl nr, (Path L pv Red pr):(Path R gv gc u):path) =
  balance (Node pv Red nr pr, (Path R nv Red nl):(Path R gv gc u):path)
balance (Node nv nc nl nr, (Path L pv Red pr):(Path R gv gc u):path) =
  balance (Node pv Red nr pr, (Path R nv Red nl):(Path R gv gc u):path)