Now I'm curious whether it would be possible to create an extensible effects framework in Agda.

What am I doing with my life?

On a related note, is there a library with these things that's not called singletons?

I love how every C++ interview had a question about visitor pattern, then BAM C++11 with lambdas happened, and everyone forgot about visitors the same instance.

I find it hilarious how OpenBSD people hate Rust despite the latter aiming for the same thing OpenBSD dudes have been trying to achieve for years.

I just want to do some type magic. Nothing special. Just filter a type level list and use it in a polymorphic variant. Why does it have to be like this?

tfw using singletons in Haskell:

Oh shit! Not this thing! Not me! No!

It's very annoying that [Maybe] isn't a type-level list but [Maybe, Either Int] is.

Just as Haskell has multiple effects implementations, Rust now has many async libraries that implement the same thing but all slightly suck in different ways.

Ugh... Instead of HList that would some kind of Variant. But the idea is still the same.

This is mostly because chaining multiple `runError` calls and getting something like `Either Exc1 (Either Exc2 (Either Exc3 a)))` just sucks ass. I'm surprised that people put up with stuff like this.

Actually, I probably should add an interpreter for exceptions into extensible effects that catches all exceptions and returns something like `Either (HList '[...]) a`. Should work marvellously.

TypeApplications is one of the best things that have ever happened to Haskell!

Wanna know what pain and suffering look like?

Here is what pain and suffering look like!

This was mostly about intero, but I've totally seen similar stories.

I'm really curious about what exactly makes people bury seemingly fine working projects instead of giving them up to community.

So, I'm playing around with various GC settings for GHC RTS, and this thing is quite weird. I'd expect that the maximum performance would be if the nursery size is equal to my CPU cache size (15M), but clearly this is not the case. I'm wondering what's going on here. Perhaps, GHC allocator parameters should be tweaked further?

The code I used for benchmark is this raytracer

Show more
Functional Café is an instance for people interested in functional programming and languages.