kleopatra999 / owl-lisp

Automatically exported from code.google.com/p/owl-lisp
3 stars 1 forks source link

Rethink types #121

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Owl originally went for a fixed type hierarchy (a-la R5RS Scheme). The upside 
of this was that unlike with user-definable types, programs running on separate 
threads/machines could use serialized data without issues.

The fixed type hierarchy was further divided to have minor / major types, as 
represented by low and high order bits of the type, intended for product- and 
sum type information. This is currently used to subclass finite function nodes, 
number types etc.

Some of the many options what to do next:

 - screw compositionality of code with user-defined types and
    + add a typical type system + type inference later
    + go for dependent types
       o also a good basis for deriving automatic tests?
    + add R7RS records as product types and keep any further type definitions distinct from them
    + just add records and plan for theorem proving support later

 - add a few more fixed types and pretend it's enough

Original issue reported on code.google.com by aohelin on 8 Jan 2012 at 8:52

GoogleCodeExporter commented 9 years ago
Scheme compatibility takes precedence for now, so wontfixing.

Original comment by aohelin on 9 May 2012 at 12:37