A simple example Write a test that expects a function to exist. describe "combineStrings" [ test "combines some strings" <| \_ -> combineStrings "a" "b" |> Expect.equal "ab" ] The compiler fails. Cannot find variable `combineStrings` 12| combineStrings "a" "b" ^^^^^^^^^^^^^^ Make the function exist in the simplest possible way. combineStrings : String -> String -> String combineStrings string1 string2 = "" The code compiles, but the tests fail. ↓ combineStrings ✗ combines some strings "" ╷ │ Expect.equal ╵ "ab" TEST RUN FAILED Write code that makes the tests pass. combineStrings : String -> String -> String combineStrings string1 string2 = string1 ++ string2 BOOM! And now, refactor. TEST RUN PASSED Duration: 83 ms Passed: 1 Failed: 0