jtoman
jtoman
Two years later, but I also had the Hasher problem. The issue is in how Tamiflex detects references to proxy or generated classes: in the Hasher and ClassRenamer, any LDC...
Interesting, in my version of Tuareg, I get the following indentation: ```ocaml let x = match x with | [%type: int] -> assert false | u -> u ``` According...
As an update, we've decided that enumerators are basically not inferenceable. That is, they can only be passed to positions where their type is required (such as foo: (Enumerator)) if...
Unfortunately it is not possible to have a Proc or a lambda pass through a block. So you can't do something like this: ``` ruby Proc.new { |a| yield a...
It now strikes me as incredibly obvious that we can implement our own "Proc" class that will pass along a block. We would implement the same api, and we may...
It should also be noted that the following will also work: ``` ruby my_push([1,2,3].rtc_annotate("Array"), "foo") ``` Maybe telling programmers to be judicious with their annotations is the best choice?
My initial assertion about annotations is probably not correct. Consider the following (contrived) example: ``` ruby typesig("foo: (t, t, Boolean) { t -> t } -> t") def foo(a,b,boolean) yield(boolean...
Ultimately, it may be better to have the programmer be more careful with their type signatures (not annotations). I can't think of a way for this to work without sacrificing...
To elaborate, keeping the current "no automatic union" policy in place yields a more expressive type system at the expense of placing a burden on the programmer. For instance, if...
The only downside to the above is that it requires the programmer to be aware of our unique system of handling type parameters for polymorphic classes.