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

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

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

Attributes

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

Inherited and Abstract 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] => (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] => (T[x] =:= <*>[y, z]) => Nothing)(using Injective[T]): F[A]

Givens

Givens

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