selectFocus :: (Term f, Term t) => (f -> Maybe f) -> t -> Maybe f |
|
replaceFocus :: (Term t, Term t') => (t -> Maybe t) -> t' -> Maybe t' |
|
deleteFocus :: (Term f, Term [f], Term t) => (f -> Maybe f) -> t -> Maybe t |
|
selectHost :: (Term f, Term h, Term t) => (f -> Maybe f) -> (h -> Maybe h) -> t -> Maybe h |
|
markHost :: (Term f, Term h, Term t) => (f -> Bool) -> (h -> h) -> t -> Maybe t |
|
listify :: (Term x, Term y) => x -> [y] |
|
strings :: Term x => x -> [String] |
|
inj :: (MonadPlus m, Term x, Term c) => (c -> m c) -> x -> m x |