MyNixOS website logo
Description

Generic operations over variables.

The aim of this library is to provide a unified set of operations (new, read, write, swap, various strict mutate* functions and their derivatives (like mutate-and-return-the-old-value) and a certain interface for MVar-like things) over all common variable types: IORef, STRef s, MVar, TVar, TMVar. When possible type classes are generalized to be over abstract containers rather than variables: e.g. it'd make sense to implement MonadRead TChan and MonadMutate_ Vector instances, but no such instances are provided right now. There are also some lenses to be described in an upcoming blog post.

monad-var

The aim of this library is to provide a unified set of operations (new, read, write, swap, various strict mutate* functions and their derivatives (like mutate-and-return-the-old-value) and a certain interface for MVar-like things) over all common variable types: IORef, STRef s, MVar, TVar, TMVar.

When possible type classes are generalized to be over abstract containers rather than variables: e.g. it'd make sense to implement MonadRead TChan and MonadMutate_ Vector instances, but no such instances are provided right now.

For details see the announce.

Metadata

Version

0.2.2.0

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