MyNixOS website logo
Description

List arrows for Haskell.

This small Haskell library provides some type class, types and functions to work with list (and list-like) arrows. List arrows represent computations that may return multiple outputs. Making functions that return lists an instance of both the Category and Arrow type class allow you to easily compose multiple computations into one with standard building blocks.

List arrows for Haskell.

Build Status

This small Haskell library provides some type classes, types and functions to work with list arrows and the more generalized container arrows. List arrows represent computations that may return multiple outputs. Making functions that return lists an instance of both the Category and Arrow type classes allow you to easily compose multiple computations into one with standard building blocks.

This package provides:

  • A type class ArrowList for embedding functions that produce a list of outputs into some list arrow.

  • A list of utility functions for working with list-arrows, these functions are based on the ArrowList type class so they are not tied one specific instance.

  • A concrete list arrow type that is implemented as a Kleisli arrow over the ListT list monad transformer. In short, you can both build pure list arrows and list arrows that produce tributary effects.

  • Not list arrow specific: A type class ArrowKleisli for embedding monadic computations into an arrow.

  • A type class ArrowF for embedding functions that produce a some Foldable + Alternative functor of outputs into some container arrow.

Metadata

Version

0.7.1

Platforms (75)

    Darwin
    FreeBSD 13
    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-freebsd13
  • 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-freebsd13
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows