{-# LANGUAGE TypeOperators #-} module Servant.Extra where import Servant ((:<|>) ((:<|>))) left :: (a :<|> b) -> a left :: (a :<|> b) -> a left a :<|> b x = let (a a :<|> b _) = a :<|> b x in a a right :: (a :<|> b) -> b right :: (a :<|> b) -> b right a :<|> b x = let (a _ :<|> b b) = a :<|> b x in b b