Changelog picked from https://github.com/michaelforney/samurai/releases:
New features
* The -d keepdepfile and -d keeprsp debugging options are
now supported to allow inspection of the generated
dependency file and RSP file respectively.
Bug fixes
* Failed jobs weren't releasing their pool slot. This could
cause the build to terminate early when pool depth was 1,
and the failure limit (-k flag) had not yet been reached.
* Dependency files containing more than one output: input
line would have the first character of the output path
skipped on subsequent lines. This would result an error
since all lines in the dependency file must refer to the
same output path.
* Empty paths in build edges (e.g. expanded from an undefined
variable) were not getting rejected, causing a NUL byte to
be written past the end of the allocation for the path string
when it was canonicalized as ..
* Recursive rule variable definitions were not detected and
rejected, causing infinite recursion when attempting to expand them.
Cleanups
* Better error message for dependency log read failure,
differentiating unexpected EOF from read error.
* Standard output is now line buffered, even when redirected
to a pipe or regular file. This allows incremental progress
updates in cases where the output is being saved or piped
to another command.
* The Makefile now declares dependencies on header files, so
that during development, objects get rebuilt when the headers change.
0.75 2019-11-26 00:06:59
[CHANGES]
* Remember to keep O_NONBLOCK off on IO::Async::Channel sync mode
filehandles
* Added IO::Async::Process->finish_future
* Added IO::Async::Routine->result_future
* Future-returning version of IO::Async::Function->stop
* Don't load IO::Socket or Sereal modules unless required
[BUGFIXES]
* Refresh the sigpipe in ->post_fork if required (RT128588)
* Fix some spelling mistakes (RT130087)
* Skip the async getprotobyname() test if it doesn't work
synchronously (RT131029)
base-orphans defines orphan instances that mimic instances available
in later versions of base to a wider (older) range of
compilers. base-orphans does not export anything except the orphan
instances themselves and complements base-compat. See the README for
what instances are covered:
https://github.com/haskell-compat/base-orphans#readme. See also the
what is not covered section.
Provides functions available in later versions of base to a wider
range of compilers, without requiring you to use CPP pragmas in your
code. See the README for what is covered. Also see the changelog for
recent changes.
Note that base-compat does not add any orphan instances. There is a
separate package, base-orphans, for that.
In addition, base-compat does not backport any data types or type
classes. See this section of the README for more info.
base-compat is designed to have zero dependencies. For a version of
base-compat that depends on compatibility libraries for a wider
support window, see the base-compat-batteries package. Most of the
modules in this library have the same names as in
base-compat-batteries to make it easier to switch between the
two. There also exist versions of each module with the suffix .Repl,
which are distinct from anything in base-compat-batteries, to allow
for easier use in GHCi.
0.13.2.1
* Improved performance of Data.Attoparsec.Text.asciiCI
0.13.2.0
* pure is now strict in Position
0.13.1.0
* runScanner now correctly returns the final state
(https://github.com/bos/attoparsec/issues/105).
* Parser, ZeptoT, Buffer, and More now expose Semigroup instances.
* Parser, and ZeptoT now expose MonadFail instances.
0.13.0.2
* Restore the fast specialised character set implementation for Text
* Move testsuite from test-framework to tasty
* Performance optimization of takeWhile and takeWhile1
0.13.0.1
* Fixed a bug in the implementations of inClass and notInClass for
Text (https://github.com/bos/attoparsec/issues/103)
0.13.0.0
* Made the parser type in the Zepto module a monad transformer (needed
by aeson's string unescaping parser).
0.12.1.6
* Fixed a case folding bug in the ByteString version of stringCI.
0.12.1.5
* Fixed an indexing bug in the new Text implementation of string,
reported by Michel Boucey.
0.12.1.4
* Fixed a case where the string parser would consume an unnecessary
amount of input before failing a match, when it could bail much
earlier (https://github.com/bos/attoparsec/issues/97)
* Added more context to error messages
(https://github.com/bos/attoparsec/pull/79)
0.12.1.3
* Fixed incorrect tracking of Text lengths
(https://github.com/bos/attoparsec/issues/80)
Changes in version 0.6.4.0
* Introduce Data.Primitive.PrimArray, which offers types and function
for dealing with a ByteArray tagged with a phantom type variable for
tracking the element type.
* Implement isByteArrayPinned and isMutableByteArrayPinned.
* Add Eq1, Ord1, Show1, and Read1 instances for Array and SmallArray.
* Improve the test suite. This includes having property tests for
typeclasses from base such as Eq, Ord, Functor, Applicative, Monad,
IsList, Monoid, Foldable, and Traversable.
* Fix the broken IsList instance for ByteArray. The old definition
would allocate a byte array of the correct size and then leave the
memory unitialized instead of writing the list elements to it.
* Fix the broken Functor instance for Array. The old definition would
allocate an array of the correct size with thunks for erroring
installed at every index. It failed to replace these thunks with the
result of the function applied to the elements of the argument
array.
* Fix the broken Applicative instances of Array and SmallArray. The
old implementation of <*> for Array failed to initialize some
elements but correctly initialized others in the resulting Array. It
is unclear what the old behavior of <*> was for SmallArray, but it
was incorrect.
* Fix the broken Monad instances for Array and SmallArray.
* Fix the implementation of foldl1 in the Foldable instances for Array
and SmallArray. In both cases, the old implementation simply
returned the first element of the array and made no use of the other
elements in the array.
* Fix the implementation of mconcat in the Monoid instance for
SmallArray.
* Implement Data.Primitive.Ptr, implementations of Ptr functions that
require a Prim constraint instead of a Storable constraint.
* Add PrimUnlifted instances for TVar and MVar.
* Use compareByteArrays# for the Eq and Ord instances of ByteArray
when building with GHC 8.4 and newer.
* Add Prim instances for lots of types in Foreign.C.Types and
System.Posix.Types.
* Reexport Data.Primitive.SmallArray and Data.Primitive.UnliftedArray
from Data.Primitive.
* Add fold functions and map function to
Data.Primitive.UnliftedArray. Add typeclass instances for IsList,
Ord, and Show.
* Add defaultSetByteArray# and defaultSetOffAddr# to
Data.Primitive.Types.
* Add Data.Primitive.MVar, a replacement for Control.Concurrent.MVar
that can run in any PrimMonad instead of just IO. It is not a full
replacement. Notably, it's missing masking functions and support for
adding finalizers.
Changes in version 0.6.3.0
* Add PrimMonad instances for ContT, AccumT, and SelectT from
transformers
* Add Eq, Ord, Show, and IsList instances for ByteArray
* Add Semigroup instances for Array and SmallArray. This allows
primitive to build on GHC 8.4 and later.
Changes in version 0.6.2.0
* Drop support for GHCs before 7.4
* SmallArray support
* ArrayArray# based support for more efficient arrays of unlifted
pointer types
* Make Array and the like instances of various classes for convenient
use
* Add Prim instances for Ptr and FunPtr
* Add ioToPrim, stToPrim and unsafe counterparts for situations that
would otherwise require type ascriptions on primToPrim
* Add evalPrim
* Add PrimBase instance for IdentityT
0.19.1 [2019.08.27]
* Add GenericSemigroupMonoid, an adapter newtype suitable for
DerivingVia, to Data.Semigroup.Generic.
* Work around a bug related to the backported Generic(1) instances in
this package (that could only be triggered on GHC 7.2 or 7.4) in
which the hand-written Datatype, Constructor, and Selector instances
for internal data types could overlap with GHC-generated instances.
0.19 [2019.05.10]
* The (<>) method of the backported Semigroup class no longer has a
default implementation in terms of mappend. This mirrors the
Data.Semigroup API that was introduced in base-4.9. This is a
breaking change for any Semigroup instances that are defined in
tandem with versions of base older than 4.9.
* Make the backported Hashable Arg instance reflect its respective
variants in the hashable package. In hashable-1.3, the Hashable Arg
instance only hashes the first argument, lest equal values have
different hashes.
* Backport the Lift (NonEmpty a) instance introduced in
template-haskell-2.15.0.0.
* Data.List.NonEmpty is now unconditionally Trustworthy.
0.18.5 [2018.07.02]
* Use a more efficient sconcat for the Semigroup instances for strict
and lazy ByteString.
0.18.4 [2018.01.29]
* Backport Semigroup instances for Data.Ord.Down and strict ST, which
were added in base-4.11.
0.18.3
* Add Semigroup instance for IO, as well as for Event and Lifetime
from GHC.Event
* Add Eq1, Ord1, Read1, and Show1 instances for NonEmpty
* Define Generic and Generic1 instances back to GHC 7.2, and expose
the Data.Semigroup.Generic module on GHC 7.2
0.18.2
* Depend on the bytestring-builder package to ensure Semigroup
instances for bytestring Builder and ShortByteString are always
defined
* Allow building with binary-0.8.3 and later
0.18.1
* Add the missing instance for Data.Binary.Builder.Builder.
0.18.0.1
* Added support for base-4.9
0.18
* Removed the partial functions words, unwords, lines, unlines
0.17.0.1
* Fixed the @since annotations
0.17
* Added groupWith, groupAllWith, groupWith1, groupAllWith1
* Renamed sortOn to sortWith to match the "Comprehensive
comprehensions" paper and TransformListComp extension.
* Add Semigroup instances for Alt, Void, Proxy and Tagged
* Add Num instances for Min and Max
* Removed times1p in favor of stimes.
0.16.2.2
* Cleaned up imports to remove warnings on GHC 7.10.
0.16.2.1
* Restored the ability to build on GHC < 7.6. (Generic1 deriving was only added in GHC 7.6)
0.16.2
* Added genericMappend and supporting GSemigroup class for generically
deriving Semigroup instances.
* Added Arg a b which only compares for equality/order on its first
argument, which can be used to compute argmin and argmax.
* Add Bifunctor Arg instance to avoid orphans for GHC 7.10+.
* Added missing Data.Monoid.Generic module to source control.
0.16.1
* Added Semigroup instances for various Builder constructions in text
and bytestring where available.
* Added MonadFix and MonadPlus instances for NonEmpty.
0.16.0.1
* Bumped deepseq version bound for GHC 7.10 compatibility.
0.16
* times1p and timesN are now reduced to accepting only a Natural
argument. Whole doesn't exist in GHC 7.10's Numeric.Natural, and
nats version 1 has removed support for the class.
0.15.4
* Use Data.Coerce.coerce on GHC 7.8+ to reduce the number of
eta-expansions in the resulting core.
* Avoid conflict with pending Foldable.length in base.
0.2.10.0
* Add HashMap.alterF.
* Add HashMap.keysSet.
* Make HashMap.Strict.traverseWithKey force the results before
installing them in the map.
0.2.9.0
* Add Ord/Ord1/Ord2 instances. (Thanks, Oleg Grenrus)
* Use SmallArray# instead of Array# for GHC versions 7.10 and
above. (Thanks, Dmitry Ivanov)
* Adjust for Semigroup => Monoid proposal implementation. (Thanks,
Ryan Scott)
Bug fixes
* Fix a strictness bug in fromListWith.
* Enable eager blackholing for pre-8.2 GHC versions to work around a
runtime system bug. (Thanks, Ben Gamari)
* Avoid sketchy reimplementation of ST when compiling with recent GHC.
Other changes
* Remove support for GHC versions before 7.8. (Thanks, Dmitry Ivanov)
* Add internal documentaton. (Thanks, Johan Tibell)
0.2.8.0
* Add Eq1/2, Show1/2, Read1 instances with base-4.9
* Eq (HashSet a) doesn't require Hashable a anymore, only Eq a.
* Add Hashable1/2 with hashable-1.2.6.0
* Add differenceWith function.
0.2.7.2
* Don't use -fregs-graphs
* Fix benchmark compilation on stack.
0.2.7.1
* Fix linker error related to popcnt.
* Haddock improvements.
* Fix benchmark compilation when downloaded from Hackage.
0.2.7.0
* Support criterion 1.1
* Add unionWithKey for hash maps.
0.2.6.0
* Mark several modules as Trustworthy.
* Add Hashable instances for HashMap and HashSet.
* Add mapMaybe, mapMaybeWithKey, update, alter, and
intersectionWithKey.
* Add roles.
* Add Hashable and Semigroup instances.
0.6.5 [2019.05.11]
* Ensure that the backported MonadFail instance for ExceptT is
available when built against transformers-0.4.*.
0.6.4 [2019.04.01]
* Use more conservative CPP to guard the backported MonadFix instance
for ListT.
0.6.3 [2019.04.01]
* Backport changes from transformers-0.5.6.*:
* Backport the MonadFix instance for ListT in
Control.Monad.Trans.Instances.
* Generalize the type of except in Control.Monad.Trans.Except.
* Backport MonadFail instances for AccumT, Reverse, and SelectT on
pre-8.0 versions of GHC by depending on the fail package if
necessary.
* Backport MonadFail instances for monad transformer types in
Control.Monad.Trans.Instances.
0.6.2
* transformers-compat now uses automatic flags instead of manual
ones. This has a number of benefits:
* There is no need for making several simultaneous releases to
support each flag combination.
* As a result, the cabal-install constraint solver should have a
much easier time figuring out install-plans involving
transformers-compat.
* Due to old cabal-install bugs, cabal-install-1.16 and older may have
a harder time installing this package, so it is recommended that you
use cabal-install-1.18 or later. (Or, if you must use
cabal-install-1.16 or older, installing transformers-compat with the
appropriate flags should help.)
0.6.1.6
0.6.1.5
0.6.1.4
0.6.1.3
0.6.1.2
* Each of versions 0.6.1.2–0.6.1.6 is a 0.6.1 build with a different
set of flags configured. Building this way allows us to work around
bugs in cabal's backtracker. The 0.6.1 release notes describe the
changes in this version. This release is configured with -ftwo
(which works with the transformers-0.2 series).
0.6.1
* Fix an oversight in which the Control.Monad.Trans.Accum and
Control.Monad.Trans.Select modules were not backported when built
with the -ffour flag.
0.6.0.6
0.6.0.5
0.6.0.4
0.6.0.3
0.6.0.2
* Each of versions 0.6.0.2–0.6.0.6 is a 0.6 build with a different set
of flags configured. Building this way allows us to work around bugs
in cabal's backtracker. The 0.6 release notes describe the changes
in this version. This release is configured with -ftwo (which works
with the transformers-0.2 series).
0.6
* Introduce the Data.Functor.Classes.Generic module, which provides
functions that can generically implement methods in the Eq1, Ord1,
Read1, and Show1 classes (without the usual boilerplate involved).
* Introduce the generic-deriving flag. When enabled,
transformers-compat will depend on the generic-deriving library on
older versions of GHC to backport GHC.Generics support for Generic
instances and the machinery in Data.Functor.Classes.Generic.
* Some instances were present in Data.Functor.Sum but not in
Control.Monad.Trans.Instances (e.g., the Generic, Typeable, and Data
instances for Sum). This has been fixed.
* Backport changes from transformers-0.5.5:
* Backport the Semigroup instance for Constant
* Add mapSelect and mapSelectT
* Define selectToContT (and deprecate selectToCont in favor of that)
* Define some explicit (*>) definitions to avoid space leaks
* Backport changes from transformers-0.5.4 (i.e., add Bifoldable and
Bitraversable instances for Data.Functor.Constant)
* Backport changes from transformers-0.5.3:
* Backport the Control.Monad.Trans.Accum and
Control.Monad.Trans.Select modules
* Backport the eitherToErrors and elimLift functions to
Control.Applicative.Lift
* Backport Bits, FiniteBits, IsString, Num, Real, Integral,
Fractional, Floating, RealFrac, and RealFloat instances for
Data.Functor.Identity
* Backport Monad, MonadFail, and MonadPlus instances for
Data.Functor.Reverse
* Backport Eq1, Ord1, Read1, and Show1 instances for Data.Proxy
* Backport changes from transformers-0.5.2 (i.e., add more INLINE
annotations)
* Backport changes from transformers-0.5.1 (i.e., add Bounded, Enum,
Ix, and Storable instances for Identity)
0.5.1.4
0.5.1.3
0.5.1.2
* Each of versions 0.5.1.2–0.5.1.4 is a 0.5.1 build with a different
set of flags configured. Building this way allows us to work around
bugs in cabal's backtracker. The 0.5.1 release notes describe the
changes in this version. This release is configured with -ftwo
(which works with the transformers-0.2 series).
0.5.1
* Fix a bug in which PolyKinds was enabled on GHC 7.4, resulting in
interface file bugs on that version of GHC.
0.5.0.4
0.5.0.3
0.5.0.2
* Each of versions 0.5.0.2–0.5.0.4 is a 0.5 build with a different set
of flags configured. Building this way allows us to work around bugs
in cabal's backtracker. The 0.5 release notes describe the changes
in this version. This release is configured with -ftwo (which works
with the transformers-0.2 series).
0.5
* Update transformers-compat to incorporate changes from the
transformers-0.5 series. These changes include:
* The Data.Functor.Classes module was completely redesigned.
* Modules now have Safe or Trustworthy annotations.
* Data types and type synonyms are poly-kinded when possible.
* Add Control.Monad.Trans.Instances, a module of orphan instances that
mimic instances available in later versions of transformers.
0.4.0.4
0.4.0.3
0.4.0.2
* Each of versions 0.4.0.2–0.4.0.4 is a 0.4 build with a different set
of flags configured. Building this way allows us to work around bugs
in cabal's backtracker. The 0.4 release notes describe the changes
in this version. This release is configured with -ftwo (which works
with the transformers-0.2 series).
0.4
Added support for the missing ExceptT instances from mtl.
This was not done lightly. While this means that by default incurring
a dependency on transformers-compat drags in mtl when you are using an
old transformers, it means that users do not have to orphan these
instances and permits wider adoption of ExceptT.
If you absolutely can't stand mtl and really want this package to
build as valid Haskell98, then you can use cabal install
transformers-compat -f-mtl to avoid incurring the dependency to get
these instances. However, that is effectively an unsupported
configuration.
0.3.3.4
0.3.3.3
0.3.3.2
* Versions 0.3.3.2–0.3.3.4 were a successful attempt to fix build
problems caused by the cabal backtracker. Each of these is a build
with a different set of flags configured. This release is configured
with -ftwo (which works with the transformers-0.2 series).
This package provides functionality for generalising the deriving mechanism
in Haskell to arbitrary classes. It was first described in the paper:
A generic deriving mechanism for Haskell. Jose Pedro Magalhaes,
Atze Dijkstra, Johan Jeuring, and Andres Loeh. Haskell'10.
The current implementation integrates with the new GHC Generics. See
http://www.haskell.org/haskellwiki/GHC.Generics for more information.
Template Haskell code is provided for supporting GHC before version 7.2.
This package normalizes variations in the interface for inspecting
datatype information via Template Haskell so that packages and support
a single, easier to use informational datatype while supporting many
versions of Template Haskell.
0.8.6 [2018.07.02]
* Make the Read(1) instances for Proxy ignore the precedence argument,
mirroring similar changes to base here.
* Fix a bug in the Floating instance for Tagged in which logBase was
defined in terms of (**).
* Avoid incurring some dependencies when using recent GHCs.
0.8.5
* Support Data.Bifoldable/Data.Bitraversable in base for GHC 8.1+.
* Backport the Eq1, Ord1, Read1, and Show1 instances for Proxy from
base-4.9
* Add Eq1/2, Ord1/2, Read1/2, and Show1/2 instances for Tagged
0.8.4
* Backport the Alternative, MonadPlus, and MonadZip instances for
Proxy from base-4.9
* Add Bits, FiniteBits, IsString, and Storable instances for Tagged
0.8.3
* Manual Generic1 support to work around a bug in GHC 7.6
* Invert the dependency to supply the Semigroup instance ourselves
when building on GHC 8
0.8.2
* deepseq support.
* Widened template-haskell dependency bounds.
0.8.1
* Add KProxy to the backwards compatibility Data.Proxy module.
* Add a Generic instance to Proxy.
0.8.0.1
* Fix builds on GHC 7.4.
0.8
* Added Data.Proxy.TH, based on the code from Frames by Anthony Cowley.
* Removed reproxy from Data.Proxy. This is a bad API decision, but it
isn't present in GHC's Data.Proxy, and this makes the API more
stable.
0.7.3
* Support Data.Bifunctor in base for GHC 7.9+.
Much shortened from vice-3.4/NEWS or http://vice-emu.sourceforge.net/NEWS :
* Changes in Vice 3.4
=====================
We also needs support in fixing the various keyboard mappings, please test the
keyboard in your favourite OS and port and report any problems.
** General
----------
- Remove support for Syllable OS, SCO, QNX4, QNX6, SGI, AIX, OpenStep/NextStep/
Rhapsody, Solaris/OpenIndiana and remaining traces of Minix, NeXT, SKYOS,
UNIXWARE, Sortix
- Remove remaining traces of support for WATCOM, MSVC, OpenWatcom
- Remove aRts support
- Remove YUV rendering
- Remove generation of .chm, .hlp and .info files. Please use the .pdf or .html
- skip building x64 unless --enable-x64 is passed to configure
- do not use the new/experimental 8580 filters unless --enable-new8580filter
is passed to configure
- update pattern generator for uninitialized ram. changed defaults so all
raminitpattern tests pass.
- remove block device disk image (rawdrive) "support". in linux it was never
needed (just use the device file) and on windows it was never implemented.
- added support for the IP232 protocol that was used by the long lost VICE1.19
hack, and which is supported by tcpser for emulating DTR/DCD (carrier detect)
- various userport rs232 fixes
- always save gifs as gif89
- added a couple shift flags to keyboard maps to support virtual cbm/ctrl and
mandatory pressed host modifiers. not all keymaps have been updated yet.
- ACIA IRQ fix
- create empty half tracks when mounting d64. fixes skew.d64
- new headless port that can be enabled by passing --enable-headlessui to
configure. this can be used to build an emulator without video output, which
may be useful for scripting.
[ omitted sections: ]
** Autostart fixes
** Snapshot fixes
** 6510 fixes
** VIC-II fixes
** VIC fixes
** SID fixes
** Monitor
** vdrive
** C-64 fixes
** C-128 fixes
** Gtk3 UI
** SDL fixes
** macOS fixes
* Version 2.0.36
- New option: `block_undelegated`. When enabled, `dnscrypt-proxy` will
directly respond to queries for locally-served zones (https://sk.tl/2QqB971U)
and nonexistent zones that should have been kept local, but are frequently
leaked. This reduces latency and improves privacy.
- Conformance: the `DO` bit is now set in synthetic responses if it was
set in a question, and the `AD` bit is cleared.
- The `miegkg/dns` module was updated to version 1.1.26, that fixes a
security issue affecting non-encrypted/non-authenticated DNS traffic. In
`dnscrypt-proxy`, this only affects the forwarding feature.
0.5.6.2 Ross Paterson Feb 2019
* Further backward compatability fix
0.5.6.1 Ross Paterson Feb 2019
* Backward compatability fix for MonadFix ListT instance
0.5.6.0 Ross Paterson Feb 2019
* Generalized type of except
* Added Control.Monad.Trans.Writer.CPS and Control.Monad.Trans.RWS.CPS
* Added Contravariant instances
* Added MonadFix instance for ListT
0.5.5.0 Ross Paterson Oct 2017
* Added mapSelect and mapSelectT
* Renamed selectToCont to selectToContT for consistency
* Defined explicit method definitions to fix space leaks
* Added missing Semigroup instance to `Constant` functor
0.5.4.0 Ross Paterson Feb 2017
* Migrate Bifoldable and Bitraversable instances for Constant
0.5.3.1 Ross Paterson Feb 2017
* Fixed for pre-AMP environments
0.5.3.0 Ross Paterson Feb 2017
* Added AccumT and SelectT monad transformers
* Deprecated ListT
* Added Monad (and related) instances for Reverse
* Added elimLift and eitherToErrors
* Added specialized definitions of several methods for efficiency
* Removed specialized definition of sequenceA for Reverse
* Backported Eq1/Ord1/Read1/Show1 instances for Proxy
0.5.2.0 Ross Paterson Feb 2016
* Re-added orphan instances for Either to deprecated module
* Added lots of INLINE pragmas
0.5.1.0 Ross Paterson Jan 2016
* Bump minor version number, required by added instances
0.5.0.2 Ross Paterson Jan 2016
* Backported extra instances for Identity
0.5.0.1 Ross Paterson Jan 2016
* Tightened GHC bounds for PolyKinds and DeriveDataTypeable
0.5.0.0 Ross Paterson Dec 2015
* Control.Monad.IO.Class in base for GHC >= 8.0
* Data.Functor.{Classes,Compose,Product,Sum} in base for GHC >= 8.0
* Added PolyKinds for GHC >= 7.4
* Added instances of base classes MonadZip and MonadFail
* Changed liftings of Prelude classes to use explicit dictionaries
0.4.3.0 Ross Paterson Mar 2015
* Added Eq1, Ord1, Show1 and Read1 instances for Const
This package contains the Control.Monad.Fail module providing the
MonadFail class that became available in base-4.9.0.0 for older base
package versions.
This package turns into an empty package when used with GHC versions
which already provide the Control.Monad.Fail module to make way for
GHC's own Control.Monad.Fail module.