@FunctionalInterface public static interface Func.B<𝓐,𝓑,𝓒> extends Lazy<Func.B<𝓐,𝓑,𝓒>>, frege.run.Kind.U<Func.B<𝓐,𝓑,?>,𝓒>, frege.run.Kind.B<Func.B<𝓐,?,?>,𝓑,𝓒>, frege.run.Kind.T<Func.B<?,?,?>,𝓐,𝓑,𝓒>
default Func.B<𝓐,𝓑,𝓒> call()
Lazy
Compute the value if it is needed.
default boolean isShared()
Lazy
Tell if this is shared.
Data and functions whose Lazy.call()
method returns this as well
as simple boxes that just hold a value ready to be supplied and Thunk
s
are considered shared.
But a bare lambda expression is assumed to be in need of sharing. For example:
() -> 42