MyNixOS website logo
Description

An ergonomic but conservative interface to ghc-prim.

This library reorganizes ghc-prim in a sane but conservative way , without adding any fancy tricks like overloading or extra functions. It's meant as a foundation for low-level programming in haskell, as well as (eventually), a comprehensive home for documentation on ghc magic.

PRIM

This library reorganizes ghc-prim in a sane but conservative way , without adding any fancy tricks like overloading or extra functions. It's meant as a foundation for low-level programming in haskell, as well as (eventually), a comprehensive home for documentation on ghc magic.

Module Structure

Modules live at the toplevel and do not consider the global package ecosystem, for modularity. It is intended to use cabal mixins or PackageImports to appropriately avoid collisions downstream. Modules are granular, intending to represent a particular usable component such as a single datatype or class. Modules for internal types are nested under the module they group closest with, while modules for common types like Refs and Arrays are anti-nested with the root exposing their types.

Export Structure

Types and constructors with the same name as the module, as well as all operators are meant to be imported unqualified. All other identifiers are meant to be imported qualified. The common pattern is:

import Compact (Compact)
import Compact qualified
Metadata

Version

0.1.0.9

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