Libraries for ATS/Anairiats


The library code for ATS is contained in the following directories:

  • $ATSHOME/prelude
  • $ATSHOME/libc
  • $ATSHOME/libats
  • Additionally, there are API's for interfacing ATS with a variety of external packages, which can be found in the following directory:
  • $ATSHOME/contrib

  • The code stored in the following directory:

    $ATSHOME/prelude (SATS) (DATS) (CATS) (HATS)

    is assumed to be commonly used. Note that the interfaces of functions in this directory are statically loaded whenever the ATS typechecker starts. So please do not statically load from within a program the files in $ATSHOME/prelude/SATS.


    The code stored in the following directory:

    $ATSHOME/libc (SATS) (DATS) (CATS)

    mostly acts as an interface for some corresponding code in libc.


    The code stored in the following directory:

    $ATSHOME/libats (SATS) (DATS) (CATS)

    is mostly implemented in ATS.

  • fmatrix (sats) (dats)
    This package contains various operations on column-major matrices.

  • funarray_braun (sats) (dats)
    This package contains a functional array implementation based on the Braun tree data structure.

  • funheap_braun (sats) (dats)
    This package contains a functional heap implementation based on the Braun tree data structure.

  • funmap_avltree (sats) (dats)
    This package contains a functional map implementation based on the AVL tree data structure.

  • freelst (sats) (dats)
    This package contains various operations for constructing and manipulating a free-list (of memory blocks)

  • genarrays (sats) (dats)
    This package contains various operations on generic arrays.

  • hashtable_chain (sats) (dats)
    This package contains a hashtable implementation based on separate chaining.

  • hashtable_linprb (sats) (dats)
    This package contains a hashtable implementation based on linear probing.

  • intinf (sats) (dats)
    This package, which is based on GMP, contains various operations on integers of infinite precision.

  • iterint (sats) (dats)
    This package contains various iterators over natural numbers. The primary purpose of this package is to demonstrate a style in which iterators should be written in ATS.

  • linmap_avltree (sats) (dats)
    This package contains a linear map implementation based on the AVL tree data structure.

  • linqueue_arr (sats) (dats)
    This package contains an array-based linear (bounded) queue implementation.

  • linqueue_lst (sats) (dats)
    This package contains a list-based linear (unbounded) queue implementation.

  • linstack_arr (sats) (dats)
    This package contains an array-based linear stack implementation.

  • smlbas This package contains various modules that are loosely based on the Standard ML Basis Library. It is made available primarily for someone who can already do functional programming in a language like SML but is yet to become familiar with advanced features in ATS such as dependent types and linear types.


  • The code stored in $ATSHOME/contrib is mostly API's for various external packages.

  • X11
  • cairo
  • OpenGL
  • SDL
  • cblas
  • clapack
  • parcomb

  • This page is maintained by Hongwei Xi. As always, your comments are welcome.


    SourceForge.net Logo