InvertLib

libretto.InvertLib
See theInvertLib companion object
class InvertLib[CoreLib <: CoreLib[_ <: InvertDSL]](val coreLib: CoreLib)

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Type members

Classlikes

Attributes

Supertypes
trait ContraFunctor[-⚬, -]
class Object
trait Matchable
class Any
Self type

Value members

Concrete methods

def inversionDuality[A]: Dual[A, -[A]]

Concrete fields

val coreLib: CoreLib

Givens

Extensions

Extensions

extension [A](a: $[A])
def race[B](using SourcePos, LambdaContext)(b: $[B])(using Positive[A], Positive[B]): $[A |*| B |+| A |*| B]
def race[B](using SourcePos, LambdaContext)(b: ??[B])(using Positive[A], Negative[B]): ($[A |+| A], ??[B])
def raceWith[B, C](using SourcePos, LambdaContext)(b: ??[B])(using Positive[A], Negative[B])(f: LambdaContext ?=> Either[($[A], ??[B]), ($[A], ??[B])] => $[C]): $[C]
extension [A](a: ??[A])
def race[B](using SourcePos, LambdaContext)(b: $[B])(using Negative[A], Positive[B]): (??[A |&| A], $[B])
def race[B](using SourcePos, LambdaContext)(b: ??[B])(using Negative[A], Negative[B]): ??[A |*| B |&| A |*| B]
def raceWith[B, C](using SourcePos, LambdaContext)(b: $[B])(using Negative[A], Positive[B])(f: LambdaContext ?=> Either[(??[A], $[B]), (??[A], $[B])] => ??[C]): ??[C]
extension (obj: Unlimited.type)
def pool[A](using Positive[A]): LList1[A] -⚬ Unlimited[A |*| -[A]] |*| LList1[A]
extension (obj: Endless.type)
def pool[A](using Positive[A]): LList1[A] -⚬ Endless[A |*| -[A]] |*| LList1[A]
def poolReset[A, B](reset: B -⚬ A)(using Positive[A]): LList1[A] -⚬ Endless[A |*| -[B]] |*| LList1[A]