Dual1

libretto.puro.PuroLib.Dual1
trait Dual1[F[_], G[_]]

Evidence that if A is dual to B, then F[A] is dual to G[B].

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Abstract methods

def lInvert[A, Ā](lInvert: dsl.One dsl.-⚬ (Ā dsl.|*| A)): dsl.One dsl.-⚬ (G[Ā] dsl.|*| F[A])
def rInvert[A, Ā](rInvert: (A dsl.|*| Ā) dsl.-⚬ dsl.One): (F[A] dsl.|*| G[Ā]) dsl.-⚬ dsl.One

Concrete methods

def apply[A, Ā](ev: Dual[A, Ā]): Dual[F[A], G[Ā]]
def lInvertFlippedTArgs: [Ā, A] => (dsl.One dsl.-⚬ (Ā dsl.|*| A)) => dsl.One dsl.-⚬ (G[Ā] dsl.|*| F[A])
def rInvertFlippedTAgs: [Ā, A] => ((A dsl.|*| Ā) dsl.-⚬ dsl.One) => (F[A] dsl.|*| G[Ā]) dsl.-⚬ dsl.One

Concrete fields

val lInvertVal: [x, y] => (x$1: dsl.One dsl.-⚬ (y dsl.|*| x)) => dsl.One dsl.-⚬ (G[y] dsl.|*| F[x])
val rInvertVal: [x, y] => (x$1: (x dsl.|*| y) dsl.-⚬ dsl.One) => (F[x] dsl.|*| G[y]) dsl.-⚬ dsl.One