# Changes from Eddie 0.5 to 1.0 #

## Text and ByteStrings instead of Strings

In order to facilitate modern text processing features and enhance
performance, the default input and output type is now `Text`, not
`String`. If `--binary` is used, then the type becomes
`ByteString`. If you wish to generate `Text` output, then you can use
`--text` along with `--binary` to get `Text` output and `ByteString`
input.

`Text` IO uses encoding, whose default values will depend on your
operating system. Those can be set for `Text` input and output with
`--input-encoding` and `--output-encoding`, respectively. `--encoding`
sets both to the same value.

## ClassyPrelude, instead of Prelude and extras
To avoid having to use `Text` or `ByteString` specific versions of
the all the Haskell `List` functions, `ClassyPrelude` is used instead
of the default `Prelude`. `Data.List` and `Data.Char` are no longer
included by default, as most of the useful functions are included in
`ClassyPrelude`.

This does mean that some common functions have changed names. Any
partial functions have been replaced with a version with `Ex` appended
to the name. There are also alternatives that take default values or
return `Maybe` instances instead of raising exceptions.

The `show` function is still around, except that the output type is
now `Text` instead of `String` so that filtering works properly. This
means that if you need to display a calculated value, you'll need to
use `tshow` instead of `show`

## New option parsing library
Option parsing is now handled by optparse-applicative. This has
simplified the code. It also makes it possible to use shorter forms of
the "long" form for options, so long as they aren't ambiguous. So the
`--line` and `-file` options have been pluralized. And `--expr` has
been expanded to `--expression`.

The downside - at least for now - is that you can no longer have
multiple short options in a single argument. So `-lL` has to be
written out as `-l -L`.

For similar reasons, `--modules` and `--Modules` are no longer plural.

## Misfeatures removed
The `--list` option now disabled the automatic catenation of an output
list. About half the time, the expression doesn't generate a list in
any case. And if you're processing files, there's no easy way to get
the current behavior using the old behavior, whereas it's easy to add
the appropriate catenation function to the current behavior if it's
needed.