Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #6248

V

varkor.github.io

Personal blog · varkor.github.io/blogprogramming

varkor.github.io is a personal blog at varkor.github.io about programming. Since 2019, 12 different Hacker News readers have linked it 13 times, most often “Idiomatic Monads in Rust”. The last post was in 2020, but the archive is still widely read.

Visit the blog
13mentions?
12HN people?
2019–2023first – last linked?
Links on Hacker News per year · peak 6 in 2019

Too few sampled comments (8) to say how often HN recommends it.?

Why HN links it

HN readers link varkor's blog for posts on monads, functors and higher-kinded types in Rust and Haskell, including why Rust lacks them and how idiomatic monads might look.

Summarised by Claude from a sample of 8 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Idiomatic Monads in Rust
    7 people · 7 mentions · first linked 2019-03-28
  2. /blog/2018/07/03/existential-types-in-rust.html
    2 people · 2 mentions · first linked 2019-01-21

What Hacker News says?

  1. To use traits like you would type classes in Haskell, for example to define functors or monads in a general way, you need higher kinded types. Which can kind[oh, what a pun] of be implemented in Rust. So yes! You can use higher kinded types in rust. Whether you should I will leave up to you. But it certainly doesn't seem like a very attractive option for most projects considering the syntactic noise of the implement…

    Comment linking /blog/2019/03/28/idiomatic-monads-in-rust.html

    on “I would like a job writing Haskell”
  2. Submitted Idiomatic Monads in Rust as a story · 174 points

    HN discussion
  3. I found this useful as a Rust dev: https://varkor.github.io/blog/2019/03/28/idiomatic-monads-in... I agree with you entirely that the Haskell syntax is probably one of the biggest issues with monads being approachable.

    Comment linking /blog/2019/03/28/idiomatic-monads-in-rust.html

    on “Functors and Monads for People Who Have Read Too Many “Tutorials””
  4. Submitted Types for Units of Measure as a story · 3 points

    HN discussion
  5. I'm happy to see people are interested in the editor! Let me also point out that I wrote a short blog post about the motivation behind quiver, as well as some of its key features, here: https://varkor.github.io/blog/2020/11/25/announcing-quiver.h...

    Comment linking /blog/2020/11/25/announcing-quiver.html

    on “Quiver: A modern commutative diagram editor”
  6. Submitted Idiomatic monads in Rust as a story · 3 points

    HN discussion
  7. i don't really know Rust apart from some curious onlooking, but afaik expressing monads (i.e. the Monad typeclass) in Rust is tricky – something to do with the lifetimes of closures and the objects they close over, i think. ([Idiomatic Monads in Rust] probably touches on that). it might be possible to just build it into the language a la Result or async/await though. [Idiomatic Monads in Rust] https://varkor.github.…

    Comment linking /blog/2019/03/28/idiomatic-monads-in-rust.html

    on “Giving up on wlroots-rs”
  8. Submitted Idiomatic Monads in Rust (2019) as a story · 1 points

    HN discussion
  9. In principle, the ingredient you need for that use case is "existential types". I suspect GATs let you define existential types -- after all, the selling point is that the trait defines some type, and you can't rely on what type any particular implementor chooses. (But I can't quite put my finger on why non-G associated types shouldn't be enough.) In Java(!), I have a class `Database<$Database>` whose constructor is…

    Comment linking /blog/2018/07/03/existential-types-in-rust.html

    on “Monads and GATs in Nightly Rust”
  10. Submitted Idiomatic Monads in Rust as a story · 1 points

    HN discussion
  11. Both. See here for more https://twitter.com/withoutboats/status/1027702538563477505 There have been some people working on these problems, take https://varkor.github.io/blog/2018/11/10/monadic-do-notation... for example. This is why I say "not clear" and not "impossible" or something. We just don't know.

    Comment linking /blog/2018/11/10/monadic-do-notation-in-rust-part-i.html

    on “Haskell's Children”
  12. I wouldn't call Rust an advanced language. It has some functional-inspired features (everything is an expression, ADTs, composition/pipes with iterators), but the language's raison d'etre is zero-cost abstractions, and many of the features of Haskell and the like require a GC and costly runtime checks. See this post on why Rust doesn't have functors, monads, and the like: https://varkor.github.io/blog/2018/08/28/fea…

    Comment linking /blog/2018/08/28/feasible-functors-in-rust.html

    on “Advanced Programming Languages (2009)”
  13. I'm a bit skeptical about logic being engrained in human thinking. Sure, we might understand "or" from childhood, but what about the distinction between inclusive and exclusive or? It seems this is naturally glossed over, and making a clear distinction has to be taught. I also wonder about nesting and scopes. I'm reminded of a blog post I read [1] where subtleties of generic and existential types in Rust are explain…

    Comment linking /blog/2018/07/03/existential-types-in-rust.html

    on “A Bridge Too Far: E.W. Dijkstra and Logic”

Search all of HN for varkor.github.io

Linked by the same people?