arrow-core / arrow.core.extensions.option.functor / arrow.Kind / widen

widen

@JvmName("widen") fun <B, A : B> Kind<ForOption, A>.~~widen~~(): Option<B> Deprecated: @extension kinded projected functions are deprecated

Given A is a sub type of B, re-type this value from Kind<F, A> to Kind<F, B>

Kind<F, A> -> Kind<F, B>

import arrow.Kind
import arrow.core.extensions.option.applicative.just
import arrow.core.extensions.option.functor.widen

fun main(args: Array<String>) {
 val result: Kind<*, CharSequence> =
 //sampleStart
 "Hello".just().map({ "$it World" }).widen()
 //sampleEnd
 println(result)
}

Do you like Arrow?

Arrow Org
<