module Data.Loc.List.OneToTwo ( -- * Imports -- $imports -- * Type OneToTwo (..), -- * Tuple conversion toTuple, toTuple', ) where import Data.Loc.Internal.Prelude -- | List of length 1 or 2 data OneToTwo a = -- | List of length 1 One a | -- | List of length 2 Two a a deriving (Eq, Ord, Show, Read, Foldable, Functor) -- | -- -- >>> toTuple (One 1) -- (1,Nothing) -- -- >>> toTuple (Two 1 2) -- (1,Just 2) toTuple :: OneToTwo a -> (a, Maybe a) toTuple = \case One a -> (a, Nothing) Two a b -> (a, Just b) -- | -- -- >>> toTuple' (One 1) -- (Nothing,1) -- -- >>> toTuple' (Two 1 2) -- (Just 1,2) toTuple' :: OneToTwo a -> (Maybe a, a) toTuple' = \case One a -> (Nothing, a) Two a b -> (Just a, b) -- $imports -- -- Recommended import: -- -- > import Data.Loc.List.OneToTwo (OneToTwo) -- > import qualified Data.Loc.List.OneToTwo as OneToTwo