Libraries for ATS/Anairiats


  • The code stored in the directory $ATSHOME/prelude is assumed to be commonly used. 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 $ATSHOME/libc mostly acts as an interface for some corresponding code in libc.

  • The code stored in $ATSHOME/libats 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.


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


    SourceForge.net Logo