diff --git a/src/Quasar/PreludeExtras.hs b/src/Quasar/PreludeExtras.hs index d2cb51bb708bdff169fa16e9d79c161dceb7f7f7..377efab622232334e494a76c7934530101a773f1 100644 --- a/src/Quasar/PreludeExtras.hs +++ b/src/Quasar/PreludeExtras.hs @@ -8,6 +8,7 @@ import "base" Prelude import Quasar.Utils.ExtraT +import Control.Applicative (liftA2) import Control.Monad.State.Lazy as State import qualified Data.Char as Char import qualified Data.Hashable as Hashable @@ -80,5 +81,9 @@ infixl 4 <<$>> (<<$>>) :: (Functor f, Functor g) => (a -> b) -> f (g a) -> f (g b) (<<$>>) = fmap . fmap +infixr 6 <<>> +(<<>>) :: (Applicative f, Semigroup a) => f a -> f a -> f a +(<<>>) = liftA2 (<>) + dup :: a -> (a, a) dup x = (x, x)