module Text.Pandoc.Readers.ODT.Generic.Fallible
( Failure
, Fallible
, chooseMax
, chooseMaxWith
) where
type Failure = ()
type Fallible a = Either Failure a
chooseMax :: (Monoid a, Monoid b) => Either a b -> Either a b -> Either a b
chooseMax :: forall a b.
(Monoid a, Monoid b) =>
Either a b -> Either a b -> Either a b
chooseMax = (b -> b -> b) -> Either a b -> Either a b -> Either a b
forall a b.
Monoid a =>
(b -> b -> b) -> Either a b -> Either a b -> Either a b
chooseMaxWith b -> b -> b
forall a. Monoid a => a -> a -> a
mappend
chooseMaxWith :: (Monoid a) => (b -> b -> b)
-> Either a b
-> Either a b
-> Either a b
chooseMaxWith :: forall a b.
Monoid a =>
(b -> b -> b) -> Either a b -> Either a b -> Either a b
chooseMaxWith b -> b -> b
(><) (Right b
a) (Right b
b) = b -> Either a b
forall a b. b -> Either a b
Right (b -> Either a b) -> b -> Either a b
forall a b. (a -> b) -> a -> b
$ b
a b -> b -> b
>< b
b
chooseMaxWith b -> b -> b
_ (Left a
a) (Left a
b) = a -> Either a b
forall a b. a -> Either a b
Left (a -> Either a b) -> a -> Either a b
forall a b. (a -> b) -> a -> b
$ a
a a -> a -> a
forall a. Monoid a => a -> a -> a
`mappend` a
b
chooseMaxWith b -> b -> b
_ (Right b
a) Either a b
_ = b -> Either a b
forall a b. b -> Either a b
Right b
a
chooseMaxWith b -> b -> b
_ Either a b
_ (Right b
b) = b -> Either a b
forall a b. b -> Either a b
Right b
b