ReadArgs provides the readArgs IO action, which lets you tell the compiler
to parse the command line arguments to fit the type signature you give.

For example (a :: Int, b :: String, c :: Float) <- readArgs would parse the
first runtime argument as an Int, the second as a String (no quotes
required) and the third as a Float.

If the runtime arguments are incompatible with the type signature, then a
simple usage statement is given of the types needed.

Continuing the previous example, if it was used in a program named Example,
the error message for the above action would be:

usage: Example Int String Float

Any type that has both Typeable and Read instances can be used. Char,
String, and Text are handled specially so that command line arguments for
both do not require quotes (as their Read instances do). A special instance
is provided for FilePath so that no constructor or quotes are required.
Import ReadArgs as wip/hs-ReadArg.
The premise of basic-prelude is that there are a lot of very commonly
desired features missing from the standard Prelude, such as commonly used
operators (<$> and >=>, for instance) and imports for common datatypes
(e.g., ByteString and Vector). At the same time, there are lots of other
components which are more debatable, such as providing polymorphic versions
of common functions.

So basic-prelude is intended to give a common foundation for a number of
alternate preludes. The package provides two modules: CorePrelude provides
the common ground for other preludes to build on top of, while BasicPrelude
exports CorePrelude together with commonly used list functions to provide a
drop-in replacement for the standard Prelude.

Users wishing to have an improved Prelude can use BasicPrelude. Developers
wishing to create a new prelude should use CorePrelude.
Import basic-prelude as wip/hs-basic-prelude.