@@ -91,7 +91,8 @@ import Servant.Utils.Links (HasLink (..), IsElem, IsElem',
9191-- i.e distributing all ':>'-separated bits into the subsequent ':<|>'s.
9292type family Canonicalize api :: * where
9393 -- requires UndecidableInstances
94− Canonicalize (a :> (b :<|> c)) = ((a :> Canonicalize b) :<|> (a :> Canonicalize c))
94+ Canonicalize (a :> (b :<|> c)) = a :> Canonicalize b :<|> a :> Canonicalize c
95+ Canonicalize ((a :<|> b) :> c) = a :> Canonicalize c :<|> b :> Canonicalize c
9596 Canonicalize (a :> b) = Redex b (Canonicalize b) a
9697 Canonicalize (a :<|> b) = Canonicalize a :<|> Canonicalize b
9798 Canonicalize a = a