{-# LANGUAGE CPP #-}
module Data.Express.Basic
(
module Data.Express.Core
, module Data.Express.Map
, module Data.Express.Fold
, module Data.Express.Hole
, (>$$<)
, (>$$)
, ($$<)
)
where
import Data.Express.Core
import Data.Express.Map
import Data.Express.Fold
import Data.Express.Hole
import Data.Maybe (catMaybes, mapMaybe)
(>$$<) :: [Expr] -> [Expr] -> [Expr]
[Expr]
efs >$$< :: [Expr] -> [Expr] -> [Expr]
>$$< [Expr]
exs = [Maybe Expr] -> [Expr]
forall a. [Maybe a] -> [a]
catMaybes [Expr
ef Expr -> Expr -> Maybe Expr
$$ Expr
ex | Expr
ef <- [Expr]
efs, Expr
ex <- [Expr]
exs]
(>$$) :: [Expr] -> Expr -> [Expr]
[Expr]
efs >$$ :: [Expr] -> Expr -> [Expr]
>$$ Expr
ex = (Expr -> Maybe Expr) -> [Expr] -> [Expr]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe (Expr -> Expr -> Maybe Expr
$$ Expr
ex) [Expr]
efs
($$<) :: Expr -> [Expr] -> [Expr]
Expr
ef $$< :: Expr -> [Expr] -> [Expr]
$$< [Expr]
exs = (Expr -> Maybe Expr) -> [Expr] -> [Expr]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe (Expr
ef Expr -> Expr -> Maybe Expr
$$) [Expr]
exs