# Cat Version 0.15 Release

## Christopher Diggins — 2007-06-24 09:08:22

    A major new release of Cat, version 0.15.0, is now finally available

    for download at http://code.google.com/p/cat-language/downloads/list

    = Major New Features =

    - Self types : equirecursive function types. This allows Cat to

    properly infer the type of recursive programs like: "dup apply" which

    has type ('A ('A self -> 'B) -> 'B)

    - Type declaration verification : functions with type declarations are

    compared against the type inferred by the type inference engine.

    - Lambda expressions : quotations with named parameters such as \x.\y.[x y +]

    - .NET interface: there are now two functions for interfacing with the

    .NET framework. The "new" function constructs .NET objects has

    signature "(list string -> any)". The "invoke" function calls methods

    on .NET objects and has the signature "(any list string -> any any)".

    = Major Upgrades =

    - Full type inference, all valid programs can be inferred.

    - Functions with named parameters no longer use variant lists, but

    instead use a lambda elimination algorithm based on Brent Kerby's

    paper at http://tunes.org/~iepos/joy.html

    - The graphics library has been updated and rewritten to use the new

    .NET interface.

    = Remarks =

    - Unfortunately the documentation is now somewhat out of sync with the

    implementation, but hopefully I can fix that up over the next while.

    Cheers,

    Christopher