UxADT is a suite of libraries for multiple programming languages and platforms; these libraries provide lightweight support for a universal, cross-platform embedded representation for algebraic data type (ADT) values, and a uniform, cross-platform programming abstraction for common operations on algebraic data type values (such as defining constructors and using pattern matching on values).
The design of the UxADT libraries prioritizes ease of use and consistency of interfaces across platforms. This has a number of consequences, including the following.
- Currently, the libraries are not designed to provide run-time type checking and error reporting; instead, it is more appropriate to build tools that perform static analysis and type checking of code that may employ these libraries (which may be code in one of the supported platforms, or code written in a front-end language for which the supported platforms act as a backend).
Versions of the library are available for the following languages and platforms:
- Haskell version available on HackageDB (installation instructions)
- PHP 5.3.0 + version available at GitHub (installation instructions)
- Python 3.4 + version available at PyPI (installation instructions)