You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
privatedefstep:Free[F, A] =thismatch
[error] |^
[error] |Recursion limit exceeded.
[error] |Maybe there is an illegal cyclic reference?
[error] |If that's not the case, you could also try to increase the stacksize using the -XssJVM option.
[error] |A recurring operation is (inner to outer):
[error] |
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | ...
[error] |
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references F$3
[error] | traversing for avoiding local references F$2
[error] | traversing for avoiding local references io.github.timwspence.fpinscala.free.Free[F$2, A]
[error] | traversing for avoiding local references (io.github.timwspence.fpinscala.free.Free[F$2, A]#step :
[error] |=> io.github.timwspence.fpinscala.free.Free[F$2, A]
[error] |)
[error] one error found
[error] one error found
[error] (coreJVM /Compile/ compileIncremental) Compilation failed
Expectation
It should compile or at least fail gracefully. Adding a covary call to step fixes it:
@tailrec
private def step: Free[F, A] = this match
case FlatMap(Return(a), f) => f(a).step
case FlatMap(FlatMap(y, f), g) =>
y.flatMap(a => f(a).covary[F].flatMap(g)).step
case x => x
The text was updated successfully, but these errors were encountered:
Compiler version
3.2.0
Minimized code
Output
Expectation
It should compile or at least fail gracefully. Adding a
covary
call tostep
fixes it:The text was updated successfully, but these errors were encountered: