AbstractStarterKit
Attributes
- Graph
- Supertypes
- class Objecttrait Matchableclass Any
- Known subtypes
- class StarterKitobject StarterKit.type
Members list
Value members
Concrete methods
Concrete fields
Extensions
Exports
Defined exports
Λ is the uppercase Greek letter lambda.
Λ is the uppercase Greek letter lambda.
Attributes
Make a function A =⚬ B
''"absorb"'' a C
and return it as part of its output, i.e. A =⚬ (B |*| C)
.
Make a function A =⚬ B
''"absorb"'' a C
and return it as part of its output, i.e. A =⚬ (B |*| C)
.
Attributes
Acquires a resource of type R.
Acquires a resource of type R.
Attributes
- A
parameters of the
acquire
function- B
additional data produced by acquiring the resource
- R
type of the resource
- release
called to release the resource in case of a crash.
None
means no cleanup is needed
Variant of acquire that does not produce extra output in addition to the resource.
Variant of acquire that does not produce extra output in addition to the resource.
Attributes
Variant of acquireAsync that does not produce extra output in addition to the resource.
Variant of acquireAsync that does not produce extra output in addition to the resource.
Attributes
Chooses the left alternative A
of the choice A |&| B
, but only after the Need
signal from the first
out-port arrives. Until then, the producer of A |&| B
will see it as undecided. This is different from
chooseL[A, B] > awaitNegFst[A]
, in which the producer of A |&| B
knows immediately that the left side
is chosen.
Chooses the left alternative A
of the choice A |&| B
, but only after the Need
signal from the first
out-port arrives. Until then, the producer of A |&| B
will see it as undecided. This is different from
chooseL[A, B] > awaitNegFst[A]
, in which the producer of A |&| B
knows immediately that the left side
is chosen.
Attributes
Analogous to awaitChooseL, but chooses the right side.
Injects A
from the the second in-port to the left side of the |+|
in the out-port, but only after
the Done
signal from the first in-port arrives. That means that the consumer of A |+| B
will see it
as undecided until the Done
signal arrives. This is different from awaitPosFst[A] > injectL[A, B]
,
in which the consumer of A |+| B
knows immediately that it is the left case.
Injects A
from the the second in-port to the left side of the |+|
in the out-port, but only after
the Done
signal from the first in-port arrives. That means that the consumer of A |+| B
will see it
as undecided until the Done
signal arrives. This is different from awaitPosFst[A] > injectL[A, B]
,
in which the consumer of A |+| B
knows immediately that it is the left case.
This is a convenience method on top of injectLWhenDone that which absorbs the Done
signal using
the given Junction.Positive.
Attributes
Analogous to joinInjectL, but injects to the right.
Analogous to joinInjectL, but injects to the right.
Attributes
Analogous to awaitChooseL, but awaits a positive (i.e. Done) signal.
Analogous to awaitChooseR, but awaits a positive (i.e. Done) signal.
┏━━━━━━━━━━━┓
┞────┐ ┃
╎ A │┄┄┐ ┃
┟────┘ ┆ ┃
┃ ┆ ┃
┞────┐ ┆ ┃
╎-[A]│←┄┘ ┃
┟────┘ ┃
┗━━━━━━━━━━━┛
Attributes
Obstructs interaction on the in-port (i.e. from the left) until Pong is received.
Obstructs interaction on the in-port (i.e. from the left) until Pong is received.
Attributes
Obstructs interaction on the out-port (i.e. from the right) until Ping is received.
Obstructs interaction on the out-port (i.e. from the right) until Ping is received.
Attributes
Executes a potentially blocking operation. The implementation must ensure that the blocking operation does not impede any of the concurrently happening non-blocking computations.
Executes a potentially blocking operation. The implementation must ensure that the blocking operation does not impede any of the concurrently happening non-blocking computations.
Attributes
Lifts an ordinary Scala function to a linear function on demands, in opposite direction.
Lifts an ordinary Scala function to a linear function on demands, in opposite direction.
Attributes
Starts propagating an error downstream (which might be through both the in-port and the out-port).
Starts propagating an error downstream (which might be through both the in-port and the out-port).
Use only for irrecoverable errors. Recoverable errors should be expressed in function signature and handled appropriately.
Done on the in-port is the trigger to crash. A on the in-port allows to consume any unhandled resources. B on the out-port allows to fulfill any obligation to produce resources.
Attributes
Converts an obligation to handle either demand to an obligation to supply a choice. Alias for factorInversionOutOf_|+|.
Converts an obligation to handle either demand to an obligation to supply a choice. Alias for factorInversionOutOf_|+|.
Attributes
Converts a demand for choice to a demand of the chosen side. Alias for distributeInversionInto_|&|.
Converts a demand for choice to a demand of the chosen side. Alias for distributeInversionInto_|&|.
Attributes
Converts choice of demands to demand of either. Alias for factorInversionOutOf_|&|.
Alias for distributeInversion
Alias for factorOutInversion.
Double-inversion elimination.
Double-inversion elimination.
Attributes
Double-inversion introduction.
Double-inversion introduction.
Attributes
┏━━━━━━━━━━━┓
┃ ┞────┐
┞────┐ ╎-[A]│
╎ ⎡A⎤│ ┟────┘
╎-⎢⊗⎥│ ┃
╎ ⎣B⎦│ ┞────┐
┟────┘ ╎-[B]│
┃ ┟────┘
┗━━━━━━━━━━━┛
Attributes
If F[A]
is dual to G[B]
for all dual pairs A
, B
, then Rec[F]
is dual to Rec[G]
.
If F[A]
is dual to G[B]
for all dual pairs A
, B
, then Rec[F]
is dual to Rec[G]
.
Attributes
Performs a (potentially) effectful operation on a resource, producing some output.
Performs a (potentially) effectful operation on a resource, producing some output.
Attributes
- A
additional parameter of the operation
- B
additional output of the operation
- R
type of the resource
- f
the effectful operation
Variant of effect that does not take additional input and does not produce additional output.
Variant of effect that does not take additional input and does not produce additional output.
Attributes
Variant of effectAsync that does not take additional input and does not produce additional output.
Variant of effectAsync that does not take additional input and does not produce additional output.
Attributes
Factor out the factor A
on the left of both summands.
Factor out the factor A
on the left of both summands.
Attributes
┏━━━━━━━━━━━┓
┞────┐ ┃
╎-[A]│ ┞────┐
┟────┘ ╎ ⎡A⎤│
┃ ╎-⎢⊗⎥│
┞────┐ ╎ ⎣B⎦│
╎-[B]│ ┟────┘
┟────┘ ┃
┗━━━━━━━━━━━┛
Attributes
Factor out the factor C
on the right of both summands.
Factor out the factor C
on the right of both summands.
Attributes
┏━━━━━━┓
┃ ┞────┐
┃ ┌┄┄╎-[A]│
┃ ┆ ┟────┘
┃ ┆ ┃
┃ ┆ ┞────┐
┃ └┄→╎ A │
┃ ┟────┘
┗━━━━━━┛
Attributes
Function object (internal hom) is contravariant in the input type.
Function object (internal hom) is contravariant in the input type.
Attributes
Create a resource that is just a (potentially) mutable value which does not need any cleanup.
Create a resource that is just a (potentially) mutable value which does not need any cleanup.
Attributes
- init
function that initializes the (potentially) mutable value from an immutable one.
From the choice ''available'' on the right (C |&| D
), choose the one corresponding to the choice ''made''
on the left (A |+| B
): if on the left there is A
, choose C
, if on the left thre is B
, choose D
.
From the choice ''available'' on the right (C |&| D
), choose the one corresponding to the choice ''made''
on the left (A |+| B
): if on the left there is A
, choose C
, if on the left thre is B
, choose D
.
Attributes
From the choice ''available'' on the left (A |&| B
), choose the one corresponding to the choice ''made''
on the right (C |+| D
): if on the right there is C
, choose A
, if on the right there is D
, choose B
.
From the choice ''available'' on the left (A |&| B
), choose the one corresponding to the choice ''made''
on the right (C |+| D
): if on the right there is C
, choose A
, if on the right there is D
, choose B
.
Attributes
Signals (in the negative direction) when it is known which side of the choice (A |&| B
) has been chosen.
Signals (in the negative direction) when it is known which side of the choice (A |&| B
) has been chosen.
Attributes
Signals when it is decided whether A |+| B
actually contains the left side or the right side.
Signals when it is decided whether A |+| B
actually contains the left side or the right side.
Attributes
Turn a function into a function object.
Turn a function into a function object.
Attributes
Map the output of a function object.
Map the output of a function object.
Attributes
Function object (internal hom) is covariant in the output type.
Function object (internal hom) is covariant in the output type.
Attributes
Hides one level of a recursive type definition.
Hides one level of a recursive type definition.
Attributes
Races the two Done signals and
Races the two Done signals and
- produces left if the first signal wins, in which case it returns the second signal that still has to be awaited;
- produces right if the second signal wins, in which case it returns the first signal that still has to be awaited. It is biased to the left: if both signals have arrived by the time of inquiry, returns left.
Attributes
Races the two Ping signals. Produces left if the first signal wins and right if the second signal wins. It is biased to the left: if both signals have arrived by the time of inquiry, returns left.
Races the two Ping signals. Produces left if the first signal wins and right if the second signal wins. It is biased to the left: if both signals have arrived by the time of inquiry, returns left.
Attributes
Creates a pair of mutually recursive functions.
Creates a pair of mutually recursive functions.
Attributes
If either the source or the subscriber is completed, complete the other one and be done. Otherwise, expose their offer and demand, respectively.
If either the source or the subscriber is completed, complete the other one and be done. Otherwise, expose their offer and demand, respectively.
Attributes
Releases a resource using the given function. The release
function previously registered during resource
acquisition is not used.
Releases a resource using the given function. The release
function previously registered during resource
acquisition is not used.
Attributes
- A
additional parameter of the release function
- B
additional data produced by the release function
- R
type of the resource
- f
the release function
Releases a resource using the release
function registered during resource acquisition.
Releases a resource using the release
function registered during resource acquisition.
Attributes
Variant of release that does not take additional input.
Variant of release that does not take additional input.
Attributes
Variant of releaseAsync that does not take additional input.
Variant of releaseAsync that does not take additional input.
Attributes
Races two Need signals, i.e. signals traveling in the negative direction (i.e. opposite the -⚬
arrow).
Based on which Need signal from the out-port wins the race,
selects one of the two Need signals from the in-port:
Races two Need signals, i.e. signals traveling in the negative direction (i.e. opposite the -⚬
arrow).
Based on which Need signal from the out-port wins the race,
selects one of the two Need signals from the in-port:
- If the first signal from the out-port wins the race, selects the left signal from the in-port and pipes to it the remaining (i.e. the right) signal from the out-port.
- If the second signal from the out-port wins the race, selects the right signal from the in-port and pipes to it the reamining (i.e. the left) signal from the out-port. It is biased to the left: if both signals from the out-port have arrived by the time of inquiry, selects the left signal from the in-port.
Attributes
Races the two Pong signals (traveling from right to left). Chooses left if the first signal wins and right if the second signal wins. It is biased to the left: if both signals have arrived by the time of inquiry, chooses left.
Races the two Pong signals (traveling from right to left). Chooses left if the first signal wins and right if the second signal wins. It is biased to the left: if both signals have arrived by the time of inquiry, chooses left.
Attributes
Alias for sequence_PP.
Present a choice between two pairs ((A |*| B) |&| (C |*| D)
) as a choice (B |&| D
) between the second
parts of the respective pairs and on the side provide the other part of the chosen input pair, i.e. either
A
or C
(A |+| C
).
Present a choice between two pairs ((A |*| B) |&| (C |*| D)
) as a choice (B |&| D
) between the second
parts of the respective pairs and on the side provide the other part of the chosen input pair, i.e. either
A
or C
(A |+| C
).
Attributes
Present a choice between two pairs ((A |*| B) |&| (C |*| D)
) as a choice (A |&| C
) between the first
parts of the respective pairs and on the side provide the other part of the chosen input pair, i.e. either
B
or D
(B |+| D
).
Present a choice between two pairs ((A |*| B) |&| (C |*| D)
) as a choice (A |&| C
) between the first
parts of the respective pairs and on the side provide the other part of the chosen input pair, i.e. either
B
or D
(B |+| D
).
Attributes
Converts demand for either to a choice of which side to supply. Alias for distributeInversionInto_|+|.
Converts demand for either to a choice of which side to supply. Alias for distributeInversionInto_|+|.
Attributes
Transforms a resource into a resource of (possibly) different type.
Transforms a resource into a resource of (possibly) different type.
Attributes
- A
additional parameter of the transformation
- B
additional output of the transformation
- R
type of the input resource
- S
type of the output resource
- f
the transformation function. It receives the input resource and additional input of type A. It returns the new resource and additional output of type B.
- release
called to release the new resource in case of a crash.
None
means no cleanup is needed
Variant of transformResource that does not take additional input and does not produce additional output.
Variant of transformResource that does not take additional input and does not produce additional output.
Attributes
Variant of transformResourceAsync that does not take additional input and does not produce additional output.
Variant of transformResourceAsync that does not take additional input and does not produce additional output.
Attributes
Acquires a resource of type R. Might fail with an error of type E.
Acquires a resource of type R. Might fail with an error of type E.
Attributes
- A
parameters of the
acquire
function- B
additional data produced by acquiring the resource
- E
type of the error
- R
type of the resource
- release
called to release the resource in case of a crash.
None
means no cleanup is needed
Transforms a resource into a resource of (possibly) different type. Might fail with an error of type E.
Transforms a resource into a resource of (possibly) different type. Might fail with an error of type E.
Attributes
- A
additional parameter of the transformation
- B
additional output of the transformation
- E
type of the error
- R
type of the input resource
- S
type of the output resource
- f
the transformation function. It receives the input resource and additional input of type A. It returns either an error of type E or the new resource and additional output of type B. In case the transformation results in an error, the original resource is ''not'' released automatically— the passing of the original resource
R
to the transformation functionf
indicates transfer of responsibility for the resource to the functionf
.- release
called to release the new resource in case of a crash.
None
means no cleanup is needed
Unpacks one level of a recursive type definition.
Unpacks one level of a recursive type definition.
Attributes
Given A
and B
concurrently (A |*| B
), we can suggest that A
be consumed before B
by turning it into Ā =⚬ B
, where Ā
is the dual of A
.
Given A
and B
concurrently (A |*| B
), we can suggest that A
be consumed before B
by turning it into Ā =⚬ B
, where Ā
is the dual of A
.
Attributes
Λ is the uppercase Greek letter lambda.
Λ is the uppercase Greek letter lambda.