Bin

libretto.lambda.Bin$
See theBin companion trait
object Bin

Attributes

Companion:
trait
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
Bin.type

Members list

Concise view

Type members

Classlikes

case class Branch[<*>[_, _], T[_], F[_], A, B](l: Bin[<*>, T, F, A], r: Bin[<*>, T, F, B]) extends Bin[<*>, T, F, A <*> B]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Bin[<*>, T, F, A <*> B]
class Object
trait Matchable
class Any
case class Leaf[<*>[_, _], T[_], F[_], A](value: F[A]) extends Bin[<*>, T, F, T[A]]

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
trait Bin[<*>, T, F, T[A]]
class Object
trait Matchable
class Any

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def branchesOf[<*>[_, _], T[_], F[_], A, B](tree: Bin[<*>, T, F, <*>[A, B]])(using leafIsNotBranch: [x, y, z] => (x$1: T[x] =:= <*>[y, z]) => Nothing)(using BiInjective[<*>]): (Bin[<*>, T, F, A], Bin[<*>, T, F, B])
def valueOf[<*>[_, _], T[_], F[_], A](tree: Bin[<*>, T, F, T[A]])(using leafIsNotBranch: [x, y, z] => (x$1: T[x] =:= <*>[y, z]) => Nothing)(using Injective[T]): F[A]

Givens

Givens

given `given_Cartesian_<*>_Bin`[<*>[_, _], T[_], F[_]](using leafIsNotBranch: [x, y, z] => (x$1: T[x] =:= <*>[y, z]) => Nothing)(using x$2: BiInjective[<*>]): `given_Cartesian_<*>_Bin`[<*>, T, F]