AForest

libretto.lambda.AForest
See theAForest companion object
sealed trait AForest[->[_, _], <*>[_, _], A, B]

A forest-like structured composition of arrows.

For example,

   A               C
   |     <*>       |
   v               v
   B           D  <*>  (E <*> F)
                        |
                        v
                        G

is an AForest[->, <*>, A <*> C, B <*> (D <*> (G <*> F))]

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Empty[->, <*>, A]
trait NonEmpty[->, <*>, A, B]
class Node[->, <*>, A, X, B]
class Par[->, <*>, A1, A2, B1, B2]

Members list

Value members

Abstract methods

def foldMap[->>[_, _]](f: [X, Y] => (X -> Y) => ->>[X, Y])(using SemigroupalCategory[->>, <*>]): A ->> B
def nonEmpty: Boolean

Concrete methods

def focus[F[_], X](pos: Focus[<*>, F])(using in: BiInjective[<*>], ev: F[X] =:= A): Focused[->, <*>, F, X, B]
def from[Z](using ev: Z =:= A): AForest[->, <*>, Z, B]
def inFst[Y]: AForest[->, <*>, A <*> Y, B <*> Y]
def inSnd[X]: AForest[->, <*>, X <*> A, X <*> B]
def to[C](using ev: B =:= C): AForest[->, <*>, A, C]