úÎkportable experimental/Sebastian Fischer (sebf@informatik.uni-kiel.de)  The type  DepthBound( represents computations with a bounded  depth. It'2s monad instances implements iterative deepening. 'Non-Deterministic computations of type Levels a can be searched  level-wise.  The function levels+ yields the results of a non-deterministic  computation grouped in levels.  The function breadthFirstSearch enumerates the results of a 7 non-deterministic computation in breadth-first order.  The function  iterLevels& computes the levels of a depth bound ( computation using iterative deepening.  The function iterativeDeepening enumerates the results of a ; non-deterministic computations using iterative deepening.  The function  diagonals$ enumarates the entries of a matrix C diagonally. The matrix may contain an infinite number of infinite  rows.     level-monad-0.3Control.Monad.Levels DepthBoundLevelslevelsbreadthFirstSearch iterLevelsiterativeDeepening diagonals!bindzipConc