{-# LANGUAGE ImplicitParams #-} module Data.Either.Located ( module Data.Either , fromRight, fromLeft ) where import Data.Either import qualified GHC.Err.Located as L import GHC.Stack fromRight :: (?callStack :: CallStack) => Either a b -> b fromRight (Right x) = x fromRight (Left _) = L.error "Either.fromRight: Left" fromLeft :: (?callStack :: CallStack) => Either a b -> a fromLeft (Left x) = x fromLeft (Right _) = L.error "Either.fromLeft: Right"