Tree

case class Tree[A](value: A, children: Identity[LazyList[Tree[A]]])

NOTE: This differs from the Haskell version by not having an effect on the Node for performance reasons. See haskell-difference.md for more information.

FIXME The LazyList here is critical to avoid running extra tests during shrinking. The alternative might be something like: https://github.com/hedgehogqa/scala-hedgehog/compare/topic/issue-66-lazy-shrinking

Companion:
object
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Value members

Concrete methods

def expand(f: A => List[A]): Tree[A]
def flatMap[B](f: A => Tree[B]): Tree[B]
def map[B](f: A => B): Tree[B]
def prune: Tree[A]

Inherited methods

def productElementNames: Iterator[String]
Inherited from:
Product
def productIterator: Iterator[Any]
Inherited from:
Product