BSD-3-Clause licensed by NoRedInk
This version can be pinned in stack with:nri-prelude-,5173


A Prelude inspired by the Elm programming language.

enable ghc option


to get default imports (List, Maybe, Debug, etc)

For tests you’re recommended to enable the ExtendedDefaultRules language extension, and -fno-warn-type-defaults compiler option.

This package re-implements API’s and re-uses documentation from elm-core (license) and elm-test (license).


Unreleased next version

  • Support GHC 9.0.1.

  • Relax version bounds to encompass time-0.12.

  • Update to safe-coloured-text version


  • #71 was actually a breaking change! Whoops


  • Log.Context can be shown, which should lead us to better test outputs. (#71)
  • Platform.rootTracingSpanIO doesn’t let onFinish break the worker. (#73)


  • use safe-color-text instead of ansi-terminal (#68)
  • Relax version bounds to ecompass ****base****-4.15.x. (#69)


  • JUnit report includes failure location (#60)
  • Debug.todo returns callstack of where it was called, not inside of library (#65)

Breaking changes:

  • replace Log.userIs* functions with more standard debug, info, warn, error (#48)


  • Improved diff representation in failing tests. (#40, #41, #43, #44)
  • Ported floating point comparison expectations from elm-test. (#41, #42)
    • FloatingPointTolerance (..), within, notWithin
  • Expect.equalToContentsOf now includes proper stack traces (is this a bugfix? Let’s call it an enhancement.) (#40)

Breaking changes:

  • Expect.Task has been removed. Most of it’s functionality has been moved into Expect.
  • Test.task has been removed. Regular Test.test now supports monadic-style test writing.
  • Expect.concat has been removed. do-notation can now be used to run multiple expectations.


  • Test failure diffs now look much nicer if they contain multi-line output.
  • Test failures now show a snippet of the source code around the location of the failure.
  • Tests now write to a log file that can be inspected using a new log-explorer tool.
  • Added Platform.writeSpanToDevLog to write to log-explorer from your own code.


  • Platform.summary can be used to decorate tracing spans with a text summary for use in dev tooling.
  • Platform.writeSpanToDevLog can be used to write a span for consumption by the new log-explorer tool.

Breaking changes:

  • Test.fromTestTree has been removed.
  • Fuzz.Fuzzer is now an opague type and no a synonomy for Hedgehog.Gen.
  • Expect.Task.TestFailure renamed to Expect.Task.failure.
  • Test.Runner.Tasy.main renamed to


  • Test reports now show source locations of failing tests.
  • Fuzz module has been extended and now covers almost the entire API of its Elm counterpart.
  • Dependency on tasty has been dropped.

  • Breaking change: drop Platform.TracingSpan constructor.
  • Add Platform.emptyTracingSpan export.
  • Relax version bounds to encompas tasty-1.4.

  • Relax version bounds to encompass time-1.11.

  • Fix tests to allow inclusion in stackage.

  • Relax version bounds to encompass pretty-diff- and base-

  • Relax version bounds to be compatible with bytestring-0.11.

  • Initial release.