commit a6f62265f345c8b7a7226515171752586b0d66e5 Author: Stephen Diehl <stephen.m.diehl@gmail.com> Date: Wed Apr 13 13:41:05 2016 -0400 bump version commit 1a809623cd1484ce215612e6b3ecef15015bc602 Author: Stephen Diehl <stephen.m.diehl@gmail.com> Date: Wed Apr 13 13:26:11 2016 -0400 masking for ghc 8.0 specific type commit 54bafb0bb80c8450863eac53a1f3a20a21c8b0c9 Author: Stephen Diehl <stephen.m.diehl@gmail.com> Date: Wed Apr 13 12:55:08 2016 -0400 bump ghc-prim for GHC 8.0 compat commit 8808d5f37369107b3e5961255089a8a9e02bf3d5 Author: Stephen Diehl <stephen.m.diehl@gmail.com> Date: Wed Apr 13 12:53:39 2016 -0400 expose base State transformers commit 05c32a4542aa66f715aea3855e140f74e97d4852 Author: Stephen Diehl <stephen.m.diehl@gmail.com> Date: Wed Apr 13 12:46:00 2016 -0400 adds compiler-independent base module
23 lines
505 B
Haskell
23 lines
505 B
Haskell
{-# LANGUAGE Safe #-}
|
|
{-# LANGUAGE NoImplicitPrelude #-}
|
|
|
|
module Applicative (
|
|
orAlt,
|
|
orEmpty,
|
|
eitherA,
|
|
) where
|
|
|
|
import Data.Bool (Bool)
|
|
import Data.Either (Either(..))
|
|
import Data.Monoid (Monoid(..))
|
|
import Control.Applicative
|
|
|
|
orAlt :: (Alternative f, Monoid a) => f a -> f a
|
|
orAlt f = f <|> pure mempty
|
|
|
|
orEmpty :: Alternative f => Bool -> a -> f a
|
|
orEmpty b a = if b then pure a else empty
|
|
|
|
eitherA :: (Alternative f) => f a -> f b -> f (Either a b)
|
|
eitherA a b = (Left <$> a) <|> (Right <$> b)
|