diff --git a/README.md b/README.md
index 4038abaac0..3a561d13f5 100644
--- a/README.md
+++ b/README.md
@@ -267,7 +267,7 @@ import ch.tutteli.atrium.api.verbs.expect
val x = 10
expect(x).toBe(9)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L53) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L53) ↓ Output
```text
expected that subject: 10 (kotlin.Int <1234789>)
◆ equals: 9 (kotlin.Int <1234789>)
@@ -309,7 +309,7 @@ The next section shows how you can define multiple assertions for the same subje
// two single assertions, only first evaluated
expect(4 + 6).isLessThan(5).isGreaterThan(10)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L60) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L60) ↓ Output
```text
expected that subject: 10 (kotlin.Int <1234789>)
◆ is less than: 5 (kotlin.Int <1234789>)
@@ -341,7 +341,7 @@ expect(4 + 6) {
isGreaterThan(10)
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L65) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L65) ↓ Output
```text
expected that subject: 10 (kotlin.Int <1234789>)
◆ is less than: 5 (kotlin.Int <1234789>)
@@ -372,7 +372,7 @@ expect {
throw IllegalArgumentException("name is empty")
}.toThrow()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L73) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L73) ↓ Output
```text
expected that subject: () -> kotlin.Nothing (readme.examples.ReadmeSpec$1$4$1 <1234789>)
◆ ▶ thrown exception when called: java.lang.IllegalArgumentException
@@ -407,7 +407,7 @@ expect {
throw IllegalArgumentException()
}.toThrow().message.startsWith("firstName")
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L80) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L80) ↓ Output
```text
expected that subject: () -> kotlin.Nothing (readme.examples.ReadmeSpec$1$5$1 <1234789>)
◆ ▶ thrown exception when called: java.lang.IllegalArgumentException
@@ -427,7 +427,7 @@ expect {
message { startsWith("firstName") }
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L86) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L86) ↓ Output
```text
expected that subject: () -> kotlin.Nothing (readme.examples.ReadmeSpec$1$6$1 <1234789>)
◆ ▶ thrown exception when called: java.lang.IllegalArgumentException
@@ -450,7 +450,7 @@ expect {
throw IllegalArgumentException("name is empty", RuntimeException("a cause"))
}.notToThrow()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L94) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L94) ↓ Output
```text
expected that subject: () -> kotlin.Nothing (readme.examples.ReadmeSpec$1$7$1 <1234789>)
◆ ▶ invoke(): ❗❗ threw java.lang.IllegalArgumentException
@@ -503,7 +503,7 @@ expect(myPerson)
.feature { f(it::fullName) } // not evaluated anymore, subject String afterwards
.startsWith("rob") // not evaluated anymore
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L113) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L113) ↓ Output
```text
expected that subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.ReadmeSpec$1$Person <1234789>)
◆ ▶ isStudent: false
@@ -555,7 +555,7 @@ Feature assertions follow the common pattern of having two overloads:
feature { f(it::lastName) }.toBe("Dummy")
}
```
- ↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L122) ↓ Output
+ ↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L122) ↓ Output
```text
expected that subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.ReadmeSpec$1$Person <1234789>)
◆ ▶ firstName: "Robert" <1234789>
@@ -605,7 +605,7 @@ expect(myPerson)
.toBe("Robert aka. Stoll") // fails
.startsWith("llotS") // not evaluated anymore
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L136) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L136) ↓ Output
```text
expected that subject: Person(firstName=Robert, lastName=Stoll, isStudent=false) (readme.examples.ReadmeSpec$1$Person <1234789>)
◆ ▶ nickname(false): "Mr. Robert" <1234789>
@@ -657,7 +657,7 @@ expect(myFamily)
.feature("first member's name") { members.first().name } // subject narrowed to String
.toBe("Peter")
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L153) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L153) ↓ Output
```text
expected that subject: Family(members=[FamilyMember(name=Robert)]) (readme.examples.ReadmeSpec$1$Family <1234789>)
◆ ▶ first member's name: "Robert" <1234789>
@@ -703,7 +703,7 @@ expect(listOf(1 to "a", 2 to "b")).get(10) {
firstToBe(1)
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L169) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L169) ↓ Output
```text
expected that subject: [(1, a), (2, b)] (java.util.Arrays.ArrayList <1234789>)
◆ ▶ get(10): ❗❗ index out of bounds
@@ -789,7 +789,7 @@ expect(x).isA()
.feature { f(it::number) }
.toBe(2)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L202) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L202) ↓ Output
```text
expected that subject: SubType2(word=hello, flag=true) (readme.examples.SubType2 <1234789>)
◆ is instance of type: SubType1 (readme.examples.SubType1)
@@ -810,7 +810,7 @@ expect(x).isA {
feature { f(it::flag) }.toBe(false)
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L208) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L208) ↓ Output
```text
expected that subject: SubType2(word=hello, flag=true) (readme.examples.SubType2 <1234789>)
◆ ▶ word: "hello" <1234789>
@@ -838,7 +838,7 @@ Let us look at the case where the subject of the assertion has a [nullable type]
val slogan1: String? = "postulating assertions made easy"
expect(slogan1).toBe(null)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L234) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L234) ↓ Output
```text
expected that subject: "postulating assertions made easy" <1234789>
◆ equals: null
@@ -851,7 +851,7 @@ expected that subject: "postulating assertions made easy" <1234789>
val slogan2: String? = null
expect(slogan2).toBe("postulating assertions made easy")
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L238) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L238) ↓ Output
```text
expected that subject: null
◆ equals: "postulating assertions made easy" <1234789>
@@ -871,7 +871,7 @@ expect(slogan2) // subject has type String?
.notToBeNull() // subject narrowed to String
.startsWith("atrium")
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L243) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L243) ↓ Output
```text
expected that subject: null
◆ is instance of type: String (kotlin.String) -- Class: java.lang.String
@@ -887,7 +887,7 @@ one without (example above) and one with `assertionCreator`-lambda (example belo
```kotlin
expect(slogan2).notToBeNull { startsWith("atrium") }
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L248) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L248) ↓ Output
```text
expected that subject: null
◆ is instance of type: String (kotlin.String) -- Class: java.lang.String
@@ -922,7 +922,7 @@ The following sub sections show both use cases by examples.
```kotlin
expect(listOf(1, 2, 2, 4)).contains(2, 3)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L252) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L252) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains, in any order:
@@ -962,7 +962,7 @@ expect(listOf(1, 2, 2, 4)).contains(
{ isGreaterThan(2).isLessThan(4) }
)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L256) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L256) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains, in any order:
@@ -1001,7 +1001,7 @@ Following each in action:
```kotlin
expect(listOf(1, 2, 3, 4)).any { isLessThan(0) }
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L263) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L263) ↓ Output
```text
expected that subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains, in any order:
@@ -1017,7 +1017,7 @@ expected that subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>
```kotlin
expect(listOf(1, 2, 3, 4)).none { isGreaterThan(2) }
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L266) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L266) ↓ Output
```text
expected that subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>)
◆ does not contain:
@@ -1035,7 +1035,7 @@ expected that subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>
```kotlin
expect(listOf(1, 2, 3, 4)).all { isGreaterThan(2) }
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L269) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L269) ↓ Output
```text
expected that subject: [1, 2, 3, 4] (java.util.Arrays.ArrayList <1234789>)
◆ all entries:
@@ -1064,7 +1064,7 @@ Following on the last section we will start with an `inOrder` example:
```kotlin
expect(listOf(1, 2, 2, 4)).contains.inOrder.only.entries({ isLessThan(3) }, { isLessThan(2) })
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L273) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L273) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains only, in order:
@@ -1114,7 +1114,7 @@ and we happily answer your question there.
```kotlin
expect(listOf(1, 2, 2, 4)).contains.inOrder.only.values(1, 2, 2, 3, 4)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L276) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L276) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains only, in order:
@@ -1138,7 +1138,7 @@ expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>
```kotlin
expect(listOf(1, 2, 2, 4)).contains.inAnyOrder.atLeast(1).butAtMost(2).entries({ isLessThan(3) })
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L279) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L279) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains, in any order:
@@ -1154,7 +1154,7 @@ expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>
```kotlin
expect(listOf(1, 2, 2, 4)).contains.inAnyOrder.only.values(1, 2, 3, 4)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L282) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L282) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains only, in any order:
@@ -1174,7 +1174,7 @@ expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>
```kotlin
expect(listOf(1, 2, 2, 4)).contains.inAnyOrder.only.values(4, 3, 2, 2, 1)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L285) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L285) ↓ Output
```text
expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>)
◆ contains only, in any order:
@@ -1196,7 +1196,7 @@ expected that subject: [1, 2, 2, 4] (java.util.Arrays.ArrayList <1234789>
```kotlin
expect(mapOf("a" to 1, "b" to 2)).contains("c" to 2, "a" to 1, "b" to 1)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L289) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L289) ↓ Output
```text
expected that subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>)
◆ contains, in any order:
@@ -1222,7 +1222,7 @@ expect(mapOf("a" to 1, "b" to 2)).contains(
KeyValue("b") { isLessThan(2) }
)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L292) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L292) ↓ Output
```text
expected that subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>)
◆ contains, in any order:
@@ -1253,7 +1253,7 @@ expect(mapOf("bernstein" to bernstein))
feature { f(it::firstName) }.toBe("Albert")
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L304) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L304) ↓ Output
```text
expected that subject: {bernstein=Person(firstName=Leonard, lastName=Bernstein, age=50)} (java.util.Collections.SingletonMap <1234789>)
◆ ▶ get("bernstein"): Person(firstName=Leonard, lastName=Bernstein, age=50) (readme.examples.ReadmeSpec2$1$Person <1234789>)
@@ -1272,7 +1272,7 @@ expect(mapOf("a" to 1, "b" to 2)) {
values { none { isGreaterThan(1) } }
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L316) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L316) ↓ Output
```text
expected that subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>)
◆ ▶ keys: [a, b] (java.util.LinkedHashMap.LinkedKeySet <1234789>)
@@ -1308,7 +1308,7 @@ expect(linkedMapOf("a" to 1, "b" to 2)).asEntries().contains.inOrder.only.entrie
}
)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L322) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L322) ↓ Output
```text
expected that subject: {a=1, b=2} (java.util.LinkedHashMap <1234789>)
◆ contains only, in order:
@@ -1349,7 +1349,7 @@ For example, `exists` will explain which entry was the first one missing:
```kotlin
expect(Paths.get("/usr/bin/noprogram")).exists()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L332) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L332) ↓ Output
```text
expected that subject: /usr/bin/noprogram (sun.nio.fs.UnixPath <1234789>)
◆ to: exist
@@ -1364,7 +1364,7 @@ Atrium will give details about why something cannot be accessed, for example whe
```kotlin
expect(Paths.get("/root/.ssh/config")).isWritable()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L336) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L336) ↓ Output
```text
expected that subject: /root/.ssh/config (sun.nio.fs.UnixPath <1234789>)
◆ is: writable
@@ -1386,7 +1386,7 @@ val filePointer = Files.createSymbolicLink(directory.resolve("directory"), file)
expect(filePointer.resolve("subfolder/file")).isRegularFile()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L341) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L341) ↓ Output
```text
expected that subject: /tmp/atrium-path/directory/subfolder/file (sun.nio.fs.UnixPath <1234789>)
◆ is: a file
@@ -1423,7 +1423,7 @@ expect("calling myFun with...") {
}
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L354) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L354) ↓ Output
```text
expected that subject: "calling myFun with..." <1234789>
◆ ▶ myFun(1): 'b'
@@ -1457,7 +1457,7 @@ expect("calling myFun with ...") {
}
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L368) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L368) ↓ Output
```text
expected that subject: "calling myFun with ..." <1234789>
◆ ▶ myFun(3): 'd'
@@ -1497,7 +1497,7 @@ expect("calling myNullableFun with ...") {
}
}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L386) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L386) ↓ Output
```text
expected that subject: "calling myNullableFun with ..." <1234789>
◆ ▶ myNullableFun(-2147483648): null
@@ -1643,7 +1643,7 @@ expect {
}
}.toThrow { messageContains("no no no") }
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L410) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L410) ↓ Output
```text
expected that subject: () -> kotlin.Nothing (readme.examples.ReadmeSpec2$1$31$1 <1234789>)
◆ ▶ thrown exception when called: java.lang.IllegalArgumentException
@@ -1685,7 +1685,7 @@ then Atrium reminds us of the possible pitfall. For instance:
```kotlin
expect(BigDecimal.TEN).isEqualIncludingScale(BigDecimal("10.0"))
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L420) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L420) ↓ Output
```text
expected that subject: 10 (java.math.BigDecimal <1234789>)
◆ is equal (including scale): 10.0 (java.math.BigDecimal <1234789>)
@@ -1702,7 +1702,7 @@ For instance:
```kotlin
expect(listOf(1)).get(0) {}
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L423) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L423) ↓ Output
```text
expected that subject: [1] (java.util.Collections.SingletonList <1234789>)
◆ ▶ get(0): 1 (kotlin.Int <1234789>)
@@ -1778,7 +1778,7 @@ and its usage:
```kotlin
expect(12).isMultipleOf(5)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L435) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L435) ↓ Output
```text
expected that subject: 12 (kotlin.Int <1234789>)
◆ is multiple of: 5 (kotlin.Int <1234789>)
@@ -1827,7 +1827,7 @@ Its usage looks then as follows:
```kotlin
expect(13).isEven()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L446) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L446) ↓ Output
```text
expected that subject: 13 (kotlin.Int <1234789>)
◆ is: an even number
@@ -1925,7 +1925,7 @@ Its usage is then as follows:
expect(Person("Susanne", "Whitley", 43, listOf()))
.hasNumberOfChildren(2)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L485) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L485) ↓ Output
```text
expected that subject: Person(firstName=Susanne, lastName=Whitley, age=43, children=[]) (readme.examples.Person <1234789>)
◆ ▶ children: [] (kotlin.collections.EmptyList <1234789>)
@@ -1958,7 +1958,7 @@ but we do not have to, as `all` already checks that there is at least one elemen
expect(Person("Susanne", "Whitley", 43, listOf()))
.hasAdultChildren()
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L500) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L500) ↓ Output
```text
expected that subject: Person(firstName=Susanne, lastName=Whitley, age=43, children=[]) (readme.examples.Person <1234789>)
◆ ▶ children: [] (kotlin.collections.EmptyList <1234789>)
@@ -1999,7 +1999,7 @@ expect(Person("Susanne", "Whitley", 43, listOf(Person("Petra", "Whitley", 12, li
.children // using the val -> subsequent assertions are about children and fail fast
.hasSize(2)
```
-↑ [Example](https://github.com/robstoll/atrium/tree/master/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L510) ↓ Output
+↑ [Example](https://github.com/robstoll/atrium/tree/master/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L510) ↓ Output
```text
expected that subject: Person(firstName=Susanne, lastName=Whitley, age=43, children=[Person(firstName=Petra, lastName=Whitley, age=12, children=[])]) (readme.examples.Person <1234789>)
◆ ▶ children: [Person(firstName=Petra, lastName=Whitley, age=12, children=[])] (java.util.Collections.SingletonList <1234789>)
diff --git a/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeTestEngine.kt b/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeTestEngine.kt
index d871e4b29e..9a511d71d5 100644
--- a/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeTestEngine.kt
+++ b/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeTestEngine.kt
@@ -150,7 +150,7 @@ class ReadmeTestEngine : TestEngine {
"""```kotlin
|$sourceCode
|```
- |↑ [Example](https://github.com/robstoll/atrium/${System.getenv("README_SOURCETREE")}/samples/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L$lineNumber) ↓ Output
+ |↑ [Example](https://github.com/robstoll/atrium/${System.getenv("README_SOURCETREE")}/misc/tools/readme-examples/src/main/kotlin/readme/examples/ReadmeSpec.kt#L$lineNumber) ↓ Output
|```text
|$output
|```