Prediction is obviously involved in certain forms of cognition, but it obviously isn't all there is to the kinds of beings we are.
585 karma · joined November 18, 2014
Find me at http://shonfeder.net/
Prediction is obviously involved in certain forms of cognition, but it obviously isn't all there is to the kinds of beings we are.
> ...
> Microsoft "invests" in Openai by giving the company free access to its servers. Openai reports this as a ten billion dollar investment, then redeems these "tokens" at Microsoft's data-centers. Microsoft then books this as ten billion in revenue.
> ...
> Plan for a future where you can buy GPUs for ten cents on the dollar, where there's a buyer's market for hiring skilled applied statisticians, and where there's a ton of extremely promising open source models that have barely been optimized and have vast potential for improvement.
No. That is a result of bad software engineer practices and stacks, not a symptom of proper abstraction.
[0]: https://hai.stanford.edu/ai-index/2025-ai-index-report/econo...
Sand away! Enjoy copying and pasting your nails, or having LLMs apply your varnish or whatever. I hope it brings happiness.
The ways AI is being used now will make this a lot worse on every front.
In OCaml we can (and do) also manage effects via monadic style. However, we don't have ad hoc polymorphism (e.g., no typeclasses), so that aspect of the dependency injection must go thru the more verbose (but more explicit, and IMO, easier to reason about) route of parametric modules.
The point in the article is that effect handlers allow direct-style code with custom effects, which enable a kind of "dependency injection" which actually looks and feels much more like just specifying different contexts within which to run the same program. If you are very used to doing everything in Haskell's monadic style, you may not really notice the difference, until you try to compose the handlers.
Here is an example I've put together to show what the author is talking about in practice: https://gist.github.com/shonfeder/a87d7d92626be06d17d2e795c6...
Is the most pressing problem facing the world is that we are not doing enough things fast enough? Seems a bit off the mark, IMO.
Current industry uses are largely in specialist areas including compiler engineering, static analyses, formal verification systems, and systems programming in critical domains.
IMO, a language without proper modules, GADTs, or (now) an effect system, does not seem to me like it could plausibly be described as "essentially OCaml". Your point about having ad hoc polymorphism (outside of an object system) is another good point about why F# really is not OCaml on .NET.
Not to mention the difference of being trapped in (or having the luxury of, as you prefer) .NET vs. compiling to native binaries.
Glad you like F# tho!
People love to sulk in their parochial pits, I guess?
Thanks for clarifying :)
I think this is a part of the point: we are able to simply write direct style, and not worry at all about the effectual context.
> how do you find the code that will run when they do fail
AFAIU, this is also the point: you are able to abstract away from any particular implementation of how the effects are handled. The code that will when they fail is determined later, whenever you decide how you want to run it. Just as, in `f : g:(A -> B) -> t(A) -> B` there is no way to find "the" code that will run when `g` is executed, because we are abstracting over any particular implementation of `g`.
> if the system survives, the consequences will be inevitable: There is no way of reforming or modifying the system so as to prevent it from depriving people of dignity and autonomy.
But I also think that this claim is (1) practically impossible to prove and (2) a claim we morally ought to attempt to disprove.