Well, I have the first subset of runtime working - objects with a single facet (so state or concurrency are not possible).

That was surprisingly easy, despite I needed to understand existential types.

Now I have the first problem - to introduce multi-faceted lexical compounds I need to write a function taking a function from several (let's say n) STM Delivery to Effect and returning exactly n TChan Delivery and an Effect...

A wrong type:

close :: ([STM Delivery] -> Effect) -> ([TChan Delivery], Effect)

as it does not constrain the lengths of the lists to be equal (and worse, operationally close does not know how many channels to create given just a function from a list to effect).

When I figure out how to do this (either by adding explicit n to the left side of the type, or by some GADT trick), I will generalize the problem to parametric (Delivery o a)...

## Friday, April 21, 2006

Subscribe to:
Post Comments (Atom)

## No comments:

Post a Comment