rescue-0.2.0: library/Data/Result/Types.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE PatternSynonyms #-}
module Data.Result.Types
( Result
, pattern Ok
, pattern Err
) where
import Data.Kind
import Data.WorldPeace
-- | 'Result' is a synonym for 'Either (OpenUnion errs) a'
type Result (errs :: [Type]) = Either (OpenUnion errs)
pattern Ok :: val -> Either (OpenUnion err) val
pattern Ok val = Right val
pattern Err :: OpenUnion errs -> Either (OpenUnion errs) b
pattern Err errs = Left errs