libretto-lambda
libretto-lambda
API
libretto.lambda
util
Applicative
Applicative
BiInjective
BiInjective
given_BiInjective_Tuple2
ClampEq
Exists
Exists
Some
ExistsCo
ExistsK
ExistsK
Some
Functional
Injective
Injective
id
Masked
Masked
Monad
Monad
monadId
NonEmptyList
NonEmptyList
SourcePos
SourcePos
StaticValue
StaticValue
TypeEq
TypeEq
Refl
TypeEqK
TypeEqK
Refl
Validated
Valid
Invalid
Validated
unapply
Unapply
Unapply
Unapply2
Unapply2
AForest
AForest
Empty
Focused
At
IntoNode
Focused
Node
NonEmpty
Par
Punched
Fst
Id
Snd
Punched
ArrowMap
Bin
Partitioned
Left
Right
Both
Bin
Branch
Leaf
Capture
Capture
Absorbed
Impl
CaptureFst
CaptureSnd
Exposed
Exposed
InFst
InSnd
NoCapture
Par
Proper
CapturingFun
CapturingFun
Closure
NoCapture
Category
ClosedSemigroupalCategory
ClosedSymmetricMonoidalCategory
ClosedSymmetricSemigroupalCategory
CocartesianSemigroupalCategory
ContextImpl
CoproductPartitioning
Distribution
EnumModule
HandleInit
HandlersModule
EnumModule
Extractor
Extractor
Via
Focus
Focus
Fst
Id
Proper
Snd
InversiveMonoidalCategory
InversiveSemigroupalCategory
Knit
Knit
InFst
InFstImpl
InSnd
InSndImpl
KeepFst
KeepSnd
Knitted
Lambdas
Contexts
Exprs
given_ClampEq_Expr
Lambdas
LambdasFactory
LinearityViolation
Overused
Unused
LinearityViolation
LambdasImpl
CapturingFun
Context
Expr
Id
Map
Prj1
Prj2
Zip
ZipN
Expr
Unvar
Par
SingleVar
Unvar
MappedMorphism
MappedMorphism
Member
Member
InHead
InTail
Single
MonoidalCategory
MonoidalObjectMap
PairwiseRel
Unpaired
Impl
Unpaired
Partitioning
Partitioning
SubFun
PatternMatching
ForLambdas
PatternMatchError
IncompatibleExtractors
NonExhaustiveness
PatternMatching
UnusedInBranch
Projection
Projection
Both
DiscardFst
DiscardSnd
Fst
Id
Par
Proper
FromPair
Snd
SemigroupalCategory
SemigroupalObjectMap
Semigroupoid
Shuffle
BiTransferOpt
IXI_IXI
None_AssocLR
None_IX
None_None
Swap_AssocRL
BiTransferOpt
Par
Fst
Snd
Both
Par
Transfer
AssocLR
AssocRL
IX
IXI
Swap
XI
Transfer
TransferOpt
None
None0
None0
TransferOpt
~⚬
Bimap
ChaseBwRes
Split
Transported
ChaseBwRes
ChaseFwRes
Split
Transported
ChaseFwRes
Composed
Decomposition
Decomposition1
Decomposition1
Id
Id0
Id0
ProjectProperRes
Projected
ProjectProperRes
ProjectRes
Projected
Punched
Punched
Xfer
~⚬
Shuffled
Shuffled
ChaseBwRes
Blocked
OriginatesFrom
Split
Transported
ChaseBwRes
ChaseFwRes
Blocked
FedTo
Split
Transported
ChaseFwRes
Impermeable
Permeable
Permeable
Plated
BiInput
BiOutput
Postshuffled
Preshuffled
Sandwich
SemiCons
SemiSnoc
Solid
Stacked
UnconsSomeRes
Cons
XI
Plated
ProjectRes
Projected
ProjectRes
Punched
Punched
Pure
RevDecomposition1
RevTransferOpt
SemiObstructed
Shuffled
UnconsSomeRes
Pure
Cons
Sink
Sink
Arrow
Join
Spine
Spine
Fst
Id
Snd
StrongZippable
SymmetricMonoidalCategory
SymmetricSemigroupalCategory
Tupled
<*>
Atom
UnhandledCase
UnhandledCase
Unzippable
Unzip
Var
Var
Map
Set
Zippable
libretto-lambda
/
libretto.lambda
/
Shuffle
/
~⚬
~⚬
libretto.lambda.Shuffle.~⚬
See the
~⚬
companion object
sealed
trait
~⚬
[
A
,
B
]
Attributes
Companion
object
Graph
Reset zoom
Hide graph
Show graph
Supertypes
class
Object
trait
Matchable
class
Any
Known subtypes
trait
Composed
[
X
,
Y
]
class
Bimap
[
X1
,
X2
,
Y1
,
Y2
]
class
Xfer
[
A1
,
A2
,
X1
,
X2
,
B1
,
B2
]
trait
Id0
[
A
,
B
]
class
Id
[
X
]
Members list
Clear all
Value members
Abstract methods
def
apply
[
F
[
_
]](
a
:
F
[
A
])(
using
StrongZippable
[
|*|
,
F
]):
F
[
B
]
def
chaseBw
[
G
[
_
],
X
](
i
:
Focus
[
|*|
,
G
])(
using
ev
:
B
=:=
G
[
X
]):
ChaseBwRes
[
A
,
G
,
X
]
def
chaseFw
[
F
[
_
],
X
](
i
:
Focus
[
|*|
,
F
])(
using
ev
:
A
=:=
F
[
X
]):
ChaseFwRes
[
F
,
X
,
B
]
def
invert
:
B
~⚬
A
def
preShuffle
[
F
[
_
,
_
],
C
](
f
:
F
[
B
,
C
])(
using
PairwiseRel
[
|*|
,
|*|
,
F
]):
Exists
[[
X
]
=>>
(
F
[
A
,
X
],
X
~⚬
C
)]
def
projectProper
[
C
](
p
:
Proper
[
|*|
,
B
,
C
]):
ProjectProperRes
[
A
,
C
]
def
proveId
(
inputIsAtomic
: [
x
,
y
]
=>
(
A
=:=
(
x
|*|
y
))
=>
Nothing
):
A
=:=
B
def
translate
[
<*>
[
_
,
_
],
F
[
_
,
_
],
X
](
fa
:
F
[
A
,
X
])(
m
:
SemigroupalObjectMap
[
|*|
,
<*>
,
F
],
sh
:
Shuffle
[
<*>
]):
Exists
[[
t
]
=>>
(
X
~⚬
t
,
F
[
B
,
t
])]
Translate to a different product type.
Translate to a different product type.
Attributes
Concrete methods
def
>
[
C
](
that
:
B
~⚬
C
):
A
~⚬
C
def
after
[
Z
](
that
:
Z
~⚬
A
):
Z
~⚬
B
def
at
[
F
[
_
]](
f
:
Focus
[
|*|
,
F
]):
F
[
A
]
~⚬
F
[
B
]
def
fold
[
->
[
_
,
_
]](
using
ev
:
SymmetricSemigroupalCategory
[
->
,
|*|
]):
A
->
B
def
from
[
Z
](
using
ev
:
Z
=:=
A
):
Z
~⚬
B
def
inFst
[
C
,
D
](
snd
:
C
~⚬
D
): (
A
|*|
C
)
~⚬
(
B
|*|
D
)
def
inFst
[
C
]: (
A
|*|
C
)
~⚬
(
B
|*|
C
)
def
inSnd
[
P
,
Q
](
fst
:
P
~⚬
Q
): (
P
|*|
A
)
~⚬
(
Q
|*|
B
)
def
inSnd
[
P
]: (
P
|*|
A
)
~⚬
(
P
|*|
B
)
def
project
[
C
](
p
:
Projection
[
|*|
,
B
,
C
]):
ProjectRes
[
A
,
C
]
def
proveIdBw
(
outputIsAtomic
: [
x
,
y
]
=>
(
B
=:=
(
x
|*|
y
))
=>
Nothing
):
A
=:=
B
def
to
[
C
](
using
ev
:
B
=:=
C
):
A
~⚬
C
In this article
Attributes
Members list
Value members
Abstract methods
Concrete methods