Webanwendung mit FastCGI und Haskell
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

28 lignes
653B

  1. module Shared (
  2. defRunMaybeT, (<$$>), MaybeT(..), ifF, ifM, (<:), (<->)
  3. ) where
  4. import Data.Maybe
  5. import Control.Monad.Trans.Maybe
  6. defRunMaybeT :: Monad m => a -> MaybeT m a -> m a
  7. defRunMaybeT defValue m = fromMaybe defValue <$> runMaybeT m
  8. (<$$>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b)
  9. (<$$>) = fmap . fmap
  10. ifF :: Bool -> a -> a -> a
  11. ifF cond x y = if cond then x else y
  12. ifF' :: a -> a -> Bool -> a
  13. ifF' x y cond = if cond then x else y
  14. ifM :: Monad m => m Bool -> m a -> m a -> m a
  15. ifM cond m1 m2 = cond >>= ifF' m1 m2
  16. (<:) :: Monad m => m Bool -> m a -> m a -> m a
  17. (<:) = ifM
  18. (<->) :: (a -> b) -> a -> b
  19. (<->) = ($)