{-# 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