úÎ"Ã      None /Return a generator of values of a given depth.  Returns 1 if there are no values of that depth or deeper. QUnfolders provide a way to unfold data structures. The minimal implementation is  . (Choose one of the values from the list. Given a number n, return a number between '0' and 'n - 1'. If an unfolder is monadic,   can be implemented in terms of . 4If a datatype is bounded and enumerable, we can use  to generate a value. -Choose between values of a given depth only. Choose randomly. !Don't choose but return all items. "Always choose the last item. #Always choose the first item.  $% &'()*+!"#      $% &'()*+!"# Safe-Infered &Data structures that can be unfolded. For example, given a data type  9 data Tree a = Empty | Leaf a | Node (Tree a) a (Tree a) a suitable instance would be   instance Unfoldable Tree where  unfold fa = choose  [ pure Empty  , Leaf <$> fa / , Node <$> unfold fa <*> fa <*> unfold fa  ] )i.e. it follows closely the instance for  Traversable-, but instead of matching on an input value,  we   from a list of all cases. aGiven a way to generate elements, return a way to generate structures containing those elements. #Unfold the structure, always using '()' as elements. Breadth-first unfold 1Unfold the structure breadth-first, always using '()' as elements. %Always choose the first constructor. $Always choose the last constructor. %Generate all the values depth first. 'Generate all the values breadth first. EGenerate a random value, can be used as default instance for Random. 1Create a data structure using the list as input. R This can fail because there might not be a data structure with the same number ? of element positions as the number of elements in the list. ,-./01234  ,-./012345      !"#$%&'()*+,-./012345678unfoldable-0.3.0 Data.UnfolderData.UnfoldableBFSgetBFSRandom getRandomRightRgetRLeftLgetLUnfolderchoose chooseInt chooseDefault boundedEnumrunBFSpackBFS Unfoldableunfoldunfold_unfoldBF unfoldBF_leftMost rightMost allDepthFirstallBreadthFirst randomDefaultfromListbase Data.MaybeNothing $fUnfolderBFS$fUnfolderRandom $fUnfolder[]$fUnfolderRight$fUnfolderLeft$fApplicativeBFS $fFunctorBFS$fUnfolderReaderT$fUnfolderContT$fUnfolderStateT$fUnfolderReverse$fUnfolderCompose$fUnfolderProduct$fUnfoldableReverse$fUnfoldableCompose$fUnfoldableProduct$fUnfoldableConstant$fUnfoldableIdentity$fUnfoldable(,)$fUnfoldableEither$fUnfoldableMaybe$fUnfoldable[]