-- 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.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.BiunfoldableR GHC.Classes.Ord Data.Constraint.Unit.Unit Data.Map.Internal.Map
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
instance Data.Unfoldable.Restricted.UnfoldableR GHC.Classes.Ord Data.Set.Internal.Set
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)
