Skip to content

Commit d7e0013

Browse files
authored
Merge pull request #126 from kategory/paco-readerfix
Fix first Reader implicit instantiation
2 parents 38f42ea + 259608d commit d7e0013

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

kategory/src/main/kotlin/kategory/data/Reader.kt

+7-7
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ infix fun <A, B, C> ((A) -> B).andThen(g: (B) -> C): (A) -> C =
77
{ a: A -> g(this(a)) }
88

99
fun <D, A> ((D) -> A).reader(): ReaderT<Id.F, D, A> =
10-
Reader(this)
10+
Reader(this, Id)
1111

1212
fun <D, A> ReaderT<Id.F, D, A>.runId(d: D): A =
1313
this.run(d).value()
1414

1515
object Reader {
1616

17-
operator fun <D, A> invoke(run: (D) -> A): ReaderT<Id.F, D, A> =
18-
Kleisli(run.andThen { Id(it) })
17+
operator fun <D, A> invoke(run: (D) -> A, MF: Monad<Id.F> = Id): ReaderT<Id.F, D, A> =
18+
Kleisli(run.andThen { Id(it) }, MF)
1919

20-
fun <D, A> pure(x: A): ReaderT<Id.F, D, A> =
21-
Kleisli.pure<Id.F, D, A>(x)
20+
fun <D, A> pure(x: A, MF: Monad<Id.F> = Id): ReaderT<Id.F, D, A> =
21+
Kleisli.pure<Id.F, D, A>(x, Id)
2222

23-
fun <D> ask(): ReaderT<Id.F, D, D> =
24-
Kleisli.ask<Id.F, D>()
23+
fun <D> ask(MF: Monad<Id.F> = Id): ReaderT<Id.F, D, D> =
24+
Kleisli.ask<Id.F, D>(Id)
2525

2626
}

kategory/src/test/kotlin/kategory/data/ReaderTest.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.junit.runner.RunWith
88
class ReaderTest : UnitSpec() {
99
init {
1010
"map should return mapped value" {
11-
Reader<Int, Int> { it -> it * 2 }.map { it -> it * 3 }.runId(2) shouldBe 12
11+
Reader<Int, Int> ({ it -> it * 2 }).map { it -> it * 3 }.runId(2) shouldBe 12
1212
}
1313

1414
"flatMap should map over the inner value" {

0 commit comments

Comments
 (0)