-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | An alternative to the Unfoldable typeclass
--   
--   An alternative to the Unfoldable typeclass
@package unfoldable-restricted
@version 0.0.3

module Data.Unfoldable.Restricted
class UnfoldableR (pred :: * -> Constraint) (t :: * -> *) | t -> pred
unfoldRestrict :: (UnfoldableR pred t, pred a, Unfolder f) => f a -> f (t a)
unfoldRestrict_ :: (UnfoldableR Unit t, Unfolder f) => f (t ())
unfoldRestrictBF :: (UnfoldableR p t, Unfolder f, p a) => f a -> f (t a)
unfoldRestrictBF_ :: (UnfoldableR Unit t, Unfolder f) => f (t ())
unfoldrRestrict :: (UnfoldableR p t, p a) => (b -> Maybe (a, b)) -> b -> Maybe (t a)
fromList :: (UnfoldableR p t, p a) => [a] -> Maybe (t a)
leftMost :: (UnfoldableR Unit t) => Maybe (t ())
rightMost :: (UnfoldableR Unit t) => Maybe (t ())
allDepthFirst :: (UnfoldableR Unit t) => [t ()]
allToDepth :: (UnfoldableR Unit t) => Int -> [t ()]
allBreadthFirst :: (UnfoldableR Unit t) => [t ()]
class BiunfoldableR (predA :: * -> Constraint) (predB :: * -> Constraint) (t :: * -> * -> *) | t -> predA predB
biunfoldRestrict :: (BiunfoldableR predA predB t, predA a, predB b, Unfolder f) => f a -> f b -> f (t a b)
biunfoldRestrict_ :: (BiunfoldableR Unit Unit t, Unfolder f) => f (t () ())
biunfoldRestrictBF :: (BiunfoldableR p q t, Unfolder f, p a, q b) => f a -> f b -> f (t a b)
biunfoldRestrictBF_ :: (BiunfoldableR Unit Unit t, Unfolder f) => f (t () ())
biunfoldrRestrict :: (BiunfoldableR p q t, p a, q b) => (c -> Maybe (a, c)) -> (c -> Maybe (b, c)) -> c -> Maybe (t a b)
fromLists :: (BiunfoldableR p q t, p a, q b) => [a] -> [b] -> Maybe (t a b)
class (Hashable a, Eq a) => Hashable' a
instance Data.Unfoldable.Restricted.UnfoldableR GHC.Classes.Ord Data.Set.Base.Set
instance Data.Unfoldable.Restricted.BiunfoldableR GHC.Classes.Ord Data.Constraint.Unit.Unit Data.Map.Base.Map
instance (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a) => Data.Unfoldable.Restricted.Hashable' a
instance Data.Unfoldable.Restricted.UnfoldableR Data.Unfoldable.Restricted.Hashable' Data.HashSet.HashSet
instance Data.Unfoldable.Restricted.BiunfoldableR Data.Unfoldable.Restricted.Hashable' Data.Constraint.Unit.Unit Data.HashMap.Base.HashMap
instance Data.Unfoldable.Restricted.UnfoldableR Data.Constraint.Unit.Unit []
instance Data.Unfoldable.Restricted.UnfoldableR Data.Constraint.Unit.Unit GHC.Base.Maybe
instance (GHC.Enum.Bounded a, GHC.Enum.Enum a) => Data.Unfoldable.Restricted.UnfoldableR Data.Constraint.Unit.Unit (Data.Either.Either a)
instance (GHC.Enum.Bounded a, GHC.Enum.Enum a) => Data.Unfoldable.Restricted.UnfoldableR Data.Constraint.Unit.Unit ((,) a)
instance Data.Unfoldable.Restricted.UnfoldableR Data.Constraint.Unit.Unit Data.Functor.Identity.Identity
instance (GHC.Enum.Bounded a, GHC.Enum.Enum a) => Data.Unfoldable.Restricted.UnfoldableR Data.Constraint.Unit.Unit (Data.Functor.Constant.Constant a)
instance (Data.Unfoldable.Restricted.UnfoldableR p f, Data.Unfoldable.Restricted.UnfoldableR p g) => Data.Unfoldable.Restricted.UnfoldableR p (Data.Functor.Product.Product f g)
instance (Data.Unfoldable.Restricted.UnfoldableR p f, Data.Unfoldable.Restricted.UnfoldableR p g) => Data.Unfoldable.Restricted.UnfoldableR p (Data.Functor.Sum.Sum f g)
instance Data.Unfoldable.Restricted.UnfoldableR p f => Data.Unfoldable.Restricted.UnfoldableR p (Data.Functor.Reverse.Reverse f)
instance Data.Unfoldable.Restricted.BiunfoldableR Data.Constraint.Unit.Unit Data.Constraint.Unit.Unit Data.Either.Either
instance Data.Unfoldable.Restricted.BiunfoldableR Data.Constraint.Unit.Unit Data.Constraint.Unit.Unit (,)
instance Data.Unfoldable.Restricted.BiunfoldableR Data.Constraint.Unit.Unit Data.Constraint.Unit.Unit Data.Functor.Constant.Constant
