We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 38f42ea + 259608d commit d7e0013Copy full SHA for d7e0013
kategory/src/main/kotlin/kategory/data/Reader.kt
@@ -7,20 +7,20 @@ infix fun <A, B, C> ((A) -> B).andThen(g: (B) -> C): (A) -> C =
7
{ a: A -> g(this(a)) }
8
9
fun <D, A> ((D) -> A).reader(): ReaderT<Id.F, D, A> =
10
- Reader(this)
+ Reader(this, Id)
11
12
fun <D, A> ReaderT<Id.F, D, A>.runId(d: D): A =
13
this.run(d).value()
14
15
object Reader {
16
17
- operator fun <D, A> invoke(run: (D) -> A): ReaderT<Id.F, D, A> =
18
- Kleisli(run.andThen { Id(it) })
+ operator fun <D, A> invoke(run: (D) -> A, MF: Monad<Id.F> = Id): ReaderT<Id.F, D, A> =
+ Kleisli(run.andThen { Id(it) }, MF)
19
20
- fun <D, A> pure(x: A): ReaderT<Id.F, D, A> =
21
- Kleisli.pure<Id.F, D, A>(x)
+ fun <D, A> pure(x: A, MF: Monad<Id.F> = Id): ReaderT<Id.F, D, A> =
+ Kleisli.pure<Id.F, D, A>(x, Id)
22
23
- fun <D> ask(): ReaderT<Id.F, D, D> =
24
- Kleisli.ask<Id.F, D>()
+ fun <D> ask(MF: Monad<Id.F> = Id): ReaderT<Id.F, D, D> =
+ Kleisli.ask<Id.F, D>(Id)
25
26
}
kategory/src/test/kotlin/kategory/data/ReaderTest.kt
@@ -8,7 +8,7 @@ import org.junit.runner.RunWith
class ReaderTest : UnitSpec() {
init {
"map should return mapped value" {
- Reader<Int, Int> { it -> it * 2 }.map { it -> it * 3 }.runId(2) shouldBe 12
+ Reader<Int, Int> ({ it -> it * 2 }).map { it -> it * 3 }.runId(2) shouldBe 12
"flatMap should map over the inner value" {
0 commit comments