Viewing profile — ambrosebs
ambrosebs
HN member- Joined
- Mon, Jul 18, 2011, 4:55 PM UTC
- HN karma
- 124
- Public activity
- 53 items
- HN profile
- View on Hacker News ↗
About ambrosebs
Recent public activity
- story
-
comment
Comment #9755709
I went back to Siek & Taha's original formulation and they have a nice examples section in 5.3 of some interesting higher-order cases with Dyn, that better demonstrates than my clu…
-
comment
Comment #9755659
Right, I think when you have a Dyn, you import all untyped code as type Dyn or containing Dyn. Then the idea is, when you unwrap a Dyn function at runtime, to distribute the functi…
-
comment
Comment #9754540
Great point. `Any` is also often called `Dyn` or `Dynamic` in normal typed languages, which is slightly different to `Any` here (core.typed's `Any` is the supertype to all types, `…
-
comment
Comment #6595330
It shouldn't be too surprising given the similarities between Clojure and Racket. Typed Clojure and Typed Racket are very closely related in theory and implementation.
-
comment
Comment #6595074
Typed Clojure is currently static analysis only and offers no automatic speed improvements. It has the nice property that code will compile and run no matter what the type checker …
-
comment
Comment #6594939
To type check Clojure idioms we use techniques that resemble light-weight dependent types. No particular attempt is made to go beyond the minimum required for checking certain idio…
-
comment
Comment #6593767
Clojure's map takes at least 2 arguments, so that's why we have an extra "a". I also commented on the blog post explaining the terms I used.
-
comment
Comment #6593434
The dotted type-variable on the right hand side of ... is what ensures both sets of dots get instantiated with the same sequence of types. Both sides of b ... b are actually comple…
- comment
-
comment
Comment #6592836
No reason.
-
comment
Comment #6508675
Rich hasn't been directly involved, aside from providing encouragement. Almost all the design/implementation work was done via Typed Racket anyway. I stole a lot of it and spent mo…
-
comment
Comment #6508570
The information on what needs annotating isn't quite complete: loops and some other macros need annotations. I'm probably responsible for the thinking that annotations are only nee…
-
comment
Comment #6475153
So I tried out my ideas for type checking core.match with CinC, and it worked out wonderfully. http://www.youtube.com/watch?v=g2zts1hW19k
-
comment
Comment #6473911
Thanks.
-
comment
Comment #6471992
Amusingly, Nicola (Bronsa) let me know CinC already provides the extension points for everything in the blog post.
-
comment
Comment #6470771
(ns my-ns (:require [clojure.core.typed :as t :refer [ann]])) (ann my-keys (All [a] [(t/Map a Any) -> (t/Coll a)])
-
comment
Comment #6469894
There would be annotations in the same places as Typed Clojure, except :no-check would be replaced by type soundness-preserving runtime assertions. There would be no need for :no-c…
-
comment
Comment #6463669
I will tiptoe carefully around the issue you're bringing up and point out that the styles of type checking provided by Dialyzer and Typed Clojure are pretty different.
-
comment
Comment #6461682
nil is explicit in Typed Clojure, and it's a goal to statically avoid misuses of nil. This rough screencast describes on aspect to the approach http://vimeo.com/55280915
-
comment
Comment #6461175
Typed Clojure's type system is too rich to avoid top-level annotations. It's a similar situation to Scala.
-
comment
Comment #6460598
Thanks!
-
comment
Comment #6460319
Yep that's correct. I want a tool that infers a rough approximation of top-levels to accelerate the process of porting untyped code to be typed. The programmer would inspect the an…
-
comment
Comment #6460291
AFAIK Typescript is level 1 gradual typing. Typed Clojure is also level 1, but I'm aiming for level 3. I guess Typed Clojure is more powerful than Typescript in a few ways, but it'…
-
comment
Comment #6460230
Also I'm not aware of a tool to "guess" top level annotations for Typed Racket. This is an area I want to explore further, soon.