Idris2Doc : Data.Tree

Data.Tree

(source)

Definitions

dataBinTree : Type->Type->Type
  Finite binary trees with labels on leaves and nodes

Totality: total
Visibility: public export
Constructors:
Leaf : leafType->BinTreeleafTypenodeType
Node : nodeType->BinTreeleafTypenodeType->BinTreeleafTypenodeType->BinTreeleafTypenodeType

Hints:
BifunctorBinTree
EqleafType=>EqnodeType=>Eq (BinTreeleafTypenodeType)
ShowleafType=>ShownodeType=>Show (BinTreeleafTypenodeType)
BinTreeSame : Type->Type
  Binary trees with the same type of value on both leaves and nodes

Visibility: public export
liftA2BinTreeSame : BinTreeSamea->BinTreeSameb->BinTreeSame (a, b)
  Smaller tree expands to the shape of a bigger one
We can do this for BinTreeSame but not for BinTree precisely
because we copy the leaf value across to the nodes

Visibility: public export
BinTreeLeaf : Type->Type
Visibility: public export
Node' : BinTreel () ->BinTreel () ->BinTreel ()
  Helper function to construct a node with a trivial value

Visibility: public export
liftA2BinTreeLeaf : BinTreeLeafa->BinTreeLeafb->BinTreeLeaf (a, b)
Visibility: public export
BinTreeNode : Type->Type
Visibility: public export
Leaf' : BinTree () n
  Helper function to construct a leaf with a trivial value

Visibility: public export
inorder : BinTreeab->List (Eitherab)
Visibility: public export
preorder : BinTreeab->List (Eitherab)
Visibility: public export
postorder : BinTreeab->List (Eitherab)
Visibility: public export
fromEitherUnit : List (Eithera ()) ->Lista
Visibility: public export
fromUnitEither : List (Either () a) ->Lista
Visibility: public export
traverseBinTreeLeaf : BinTreeLeafa->Lista
  For leaf-only trees, inorder=preorder=postorder

Visibility: public export
inorderNode : BinTreeNodea->Lista
Visibility: public export
preorderNode : BinTreeNodea->Lista
Visibility: public export
postorderNode : BinTreeNodea->Lista
Visibility: public export
dataRoseTree : Type->Type->Type
  This can likely be generalised to work for an arbitrary applicative
instead of just List

Totality: total
Visibility: public export
Constructors:
Leaf : leafType->RoseTreeleafTypenodeType
Node : nodeType->List (RoseTreeleafTypenodeType) ->RoseTreeleafTypenodeType

Hints:
EqleafType=>EqnodeType=>Eq (RoseTreeleafTypenodeType)
ShowleafType=>ShownodeType=>Show (RoseTreeleafTypenodeType)
RoseTreeSame : Type->Type
Visibility: public export
liftA2RoseTreeSame : RoseTreeSamea->RoseTreeSameb->RoseTreeSame (a, b)
Visibility: public export