Module

Perspectives.Instances.Combinators

#closure

closure :: forall a m. Eq a => Monad m => (a -> ArrayT m a) -> (a -> ArrayT m a)

The closure of f, not including the root argument. The closure of f contains no double entries iff the result of f contains no double entries.

#closure_

closure_ :: forall a m. Eq a => Monad m => (a -> ArrayT m a) -> (a -> ArrayT m a)

The closure of f, including the root argument. The closure of f contains no double entries iff the result of f contains no double entries.

#filter

filter :: forall m a o. Monad m => (a -> ArrayT m o) -> (o -> ArrayT m Boolean) -> (a -> ArrayT m o)

#filter'

filter' :: forall m a o. Monad m => (a -> ArrayT m o) -> (o -> Boolean) -> (a -> ArrayT m o)

#cond

cond :: forall m s o. Monad m => (s -> ArrayT m Boolean) -> (s -> ArrayT m o) -> (s -> ArrayT m o) -> (s -> ArrayT m o)

#disjunction

disjunction :: forall m s o. Monad m => (s -> ArrayT m o) -> (s -> ArrayT m o) -> (s -> ArrayT m o)

Prefer the left solution over the right one.

#conjunction

conjunction :: forall m s o. Eq o => Monad m => (s -> ArrayT m o) -> (s -> ArrayT m o) -> (s -> ArrayT m o)

Join the results.

Modules