When you work at only one level of abstraction, current type systems are already great. When you work at several levels of abstractions... they mostly don't even try yet.
-
-
-
This Tweet is unavailable.
-
Abstraction is not multistage, though it can be supported by it — or, mostly, fail to be. Levels of abstraction handle new aspects. Most parts can and should be automatically lifted; but that requires syntactic overhaul AND cumbersome dependent types, themselves unsupported.
1 reply 0 retweets 1 like -
Replying to @Ngnghm @Iceland_jack
Aspects introduced may include concurrency, memory allocation (linearity), error reporting, persistence, access control, logging. Suddenly none of your functions are pure anymore and you live in either dynamic types or lifting hell.
4 replies 0 retweets 1 like -
Replying to @Ngnghm @Iceland_jack
People like
@jdegoes or@snoyberg lift a lot, and are good at it. So far, I've been more of a dynamic metaprogrammer myself. Macros, DSLs and code rewrite rules lift for me, for types finer than the system supports.2 replies 1 retweet 5 likes -
I couldn't tell at first of this was a monad transformer or weight lifting comment.
1 reply 0 retweets 5 likes
It was!
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!