Implicit keyword in LHS of for comprehension


Recently when I started to use for-comprehensions with monadic structures like Task a lot, I’ve noticed that this is not a valid Scala syntax

def app: Task[Unit] = 
  for {
    implicit foo <- createFoo
    implicit bar = createBarWithImplicitFoo
    _ <- runWithImplicitBar
  } yield ()

How hard would it be to make this valid Scala code?
Desugared version should look like this (and it compiles just fine)

createFoo.flatMap { implicit foo =>
}.flatMap { implicit bar =>

#2 (dates back to an era when the bug tracker was a mix of bugs and feature requests)


Oh, I see, there are so many issues linked I’ve lost a track. What blocks this feature from merging?


the story so far seems to end in the comments on


Actually, this is stuck because it requires a SIP and it’s missing a SIP champion. More details on