MyNixOS website logo
Description

ASCII string and character processing.

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

text-asciiHackage

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.

No boolean blindness

Boolean blindness is not a good thing, for all the reasons listed in the link. Whenever possible, we'll try and give more useful information than a Bool.

Compatibility with the text API

We want match the API of the text package exactly. If you know how to use text, you'll know how to use this package too. Exceptions are made for places where text is either partial or boolean-blind.

Discoverability, documentation and user-friendliness

In addition to documenting everything with Haddocks, we have over 250 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.

Correctness

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?

We support the latest three releases of GHC. Currently, these are:

  • 9.4
  • 9.6
  • 9.8

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.

Metadata

Version

1.2.1

License

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows