text-ascii: ASCII string and character processing.

[ apache, library, text ] [ Propose Tags ]

A total-by-default, tested and documented library for working with ASCII text. Low on dependencies , high on usability.

[Skip to Readme]


Manual Flags


Always use this during development!


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS] 1.0.0, 1.0.1, 1.1
Change log CHANGELOG.md
Dependencies base (>=4.12 && <5), bytestring (>= && <0.12), deepseq (>= && <1.5), hashable (>= && <1.4), optics-core (>= && <0.4), parsec (>= && <3.2), template-haskell (>= && <, text (>= && <1.3) [details]
License Apache-2.0
Copyright (C) Koz Ross 2021
Author Koz Ross
Maintainer koz.ross@retro-freedom.nz
Revised Revision 1 made by koz_ross at 2021-03-02T07:46:29Z
Category Text
Home page https://github.com/kozross/text-ascii
Bug tracker https://github.com/kozross/text-ascii/issues
Uploaded by koz_ross at 2021-02-06T23:16:25Z
Distributions NixOS:1.1
Downloads 305 total (6 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for text-ascii-1.0.0

[back to package description]


What is this thing?

A library for handling ASCII text.

What are the goals of this project?

Totality by default

Partial functions (and type classes which provide them) will not be included: everything is total. When we include anything unsafe, it will be explicitly firewalled into its own module, behind a newtype.

Compatibility with the text API

We have (without conflicting with totality) a goal to match the API of the text package exactly. If you know how to use text, you know how to use this package too.

Discoverability, documentation and user-friendliness

In addition to documenting everything with Haddocks, we have over 100 doctests, which provide executable examples of how the API can be used, and how it will behave. We aim to clarify every corner case left by the documentation of text, and care strongly about making the API easy to follow, learn and understand.


We currently use doctests, but plan to add support for more testing. No such thing as too much!

Low dependencies

As far as possible, we aim to depend on GHC boot packages only. When we introduce more dependencies, we do it only when we have to. This way, we ensure this package builds quickly and doesn't 'lag' more than necessary due to GHC version changes.

What's with all the cat stuff?

I am a Haskell catboy.

What does this run on?

Currently, our CI checks the following versions of GHC:

  • 8.6.5
  • 8.8.4
  • 8.10.3

We check on the following platforms:

  • Windows
  • Linux
  • MacOS

What can I do with this?

The project is licensed Apache 2.0 (SPDX code Apache-2.0). For more details, please see the LICENSE.md file.