The Haskell bindings for libcdio follow the Haskell-standard [Package Versioning Policy](https://pvp.haskell.org), where the first three numbers indicate version (types/presence of exported symbols), the fourth number indicates patch (underlying behaviour and/or backend code), and the fifth indicates revision (docs, packaging, etc.) This is in contrast to the C libcdio itself, which (recently) uses Semantic Versioning; the only real difference is that the first *two* numbers of the bindings signal a breaking change, while the base library signals that with only *one*. ## v/0.1.0.0. Unreleased Initial release with nearly all of 'cdio/cdio.h' translated, but not necessarily tested, documented, or stabilized. ### Added * f/1.1.1. Translate all core symbols brought in by simply using `#include "cdio/cdio.h`. For the full list of headers this includes, see `FEATURES`. Also note that several symbols were left untranslated; see the documentation of `Foreign.Libcdio` for the list. * f/1.1.3.1. Translate `cdio/cd_types.h` as it's used in some bitmasks above. * f/1.1.3.2. Integrate log messages with the monad rather than (impurely) printing output. * f/1.1.4.2. Translate `cdio/util.h` as it provides the conversion functions for `Bcd` values. * f/1.3.1. f/1.3.3.1. f/1.3.3.2. f/1.3.4.2. Rewrite the documentation of the above to be more clear, more comprehensive, and (occasionally) more correct. * (some of) f/1.4.1. Just enough of the upstream tests to be sure the bindings are not going *completely* off the rails. * f/3.1. f/3.3. i/008. Provide a smoother means of accessing the library to Haskell users. * i/002. Close the low-hanging memory leaks from being returned allocated strings, without obfuscating the type system. * i/003. i/009. Enforce a bit more type safety by binding integral/string types with typesafe wrappers. ### Known issues * i/011. On some systems, opening a Cdio session stops the drive from recognizing a manual (push-button) request to open the drive. This also occurs with other libraries, so it's not purely a libcdio problem, Haskell bindings or otherwise, but I come across it much more frequently with the bindings than anywhere else. * i/021. A `readLog` call will occasionally return unexpected entries.