No parametric polymorphism aka generic types?
Representing Type Lattices Compactly
11–20 of 29 posts
Re: Representing Type Lattices Compactly
#12Come on man just do duck typing. You are killing me with this stuff. It all reads so technical and long and mathematically academic but it’s just a bit mask. I absolutely hate writing python now because I have to reason about a “list of list of errors” type defined by a teenager and they get mad at me if I don’t then define a new “list of list of errors, or none” type when I manipulate it. You guys are now employed b…
Re: Representing Type Lattices Compactly
#13Come on man just do duck typing. You are killing me with this stuff. It all reads so technical and long and mathematically academic but it’s just a bit mask. I absolutely hate writing python now because I have to reason about a “list of list of errors” type defined by a teenager and they get mad at me if I don’t then define a new “list of list of errors, or none” type when I manipulate it. You guys are now employed b…
Re: Representing Type Lattices Compactly
#14Come on man just do duck typing. You are killing me with this stuff. It all reads so technical and long and mathematically academic but it’s just a bit mask. I absolutely hate writing python now because I have to reason about a “list of list of errors” type defined by a teenager and they get mad at me if I don’t then define a new “list of list of errors, or none” type when I manipulate it. You guys are now employed b…
This is not about surface level typing. This is about compiler internals.
Re: Representing Type Lattices Compactly
#15Come on man just do duck typing. You are killing me with this stuff. It all reads so technical and long and mathematically academic but it’s just a bit mask. I absolutely hate writing python now because I have to reason about a “list of list of errors” type defined by a teenager and they get mad at me if I don’t then define a new “list of list of errors, or none” type when I manipulate it. You guys are now employed b…
lmaooo sub-2σ golem detected
Re: Representing Type Lattices Compactly
#16wow I guess great minds really do think alike, I did almost the same exact thing a few years ago, but eventually gave up as my type hierarchy grew too complex. You could probably represent a lot more complex relations with similar strategies by adding one or two cleanup instructions to union/intersection operations, but whenever I've tried to do it, my head gets dizzy from all the possibilities. And so far I've been…
Obviously not perfect as it can produce false positives, but if we keep a filter of sufficient size, this will be low, and still be more space-efficient than keeping a bit per type in a large type hierarchy.
Intersections can also be done, but with a potentially higher false-positive rate. The result of `Bloom(t1, t2)` has at least the bits set by `Bloom(t1) & Bloom(t2)`.
Re: Representing Type Lattices Compactly
#17Re: Representing Type Lattices Compactly
#18wow I guess great minds really do think alike, I did almost the same exact thing a few years ago, but eventually gave up as my type hierarchy grew too complex. You could probably represent a lot more complex relations with similar strategies by adding one or two cleanup instructions to union/intersection operations, but whenever I've tried to do it, my head gets dizzy from all the possibilities. And so far I've been…
One possible trick for unions is to use bloom filters, providing you have some way of hashing types. If you create a bloom filter `Bloom(t1, t2)`, it's the same as doing `Bloom(t1) | Bloom(t2)`, where `|` is just bitwise-OR. Obviously not perfect as it can produce false positives, but if we keep a filter of sufficient size, this will be low, and still be more space-efficient than keeping a bit per type in a large typ…
Re: Representing Type Lattices Compactly
#19Re: Representing Type Lattices Compactly
#20Come on man just do duck typing. You are killing me with this stuff. It all reads so technical and long and mathematically academic but it’s just a bit mask. I absolutely hate writing python now because I have to reason about a “list of list of errors” type defined by a teenager and they get mad at me if I don’t then define a new “list of list of errors, or none” type when I manipulate it. You guys are now employed b…