I hate it when this happens. Imagine, you're working on a project and run into a thing in the compiler, and suddenly implementing this thing seems more exciting than the project itself.

So, turns one the only way to pattern match on an existentially quantified constructor in Haskell is with case expression. Let expressions aren't allowed, despite let...in being a functional equivalent of a case expression with just a single branch.

Something something type checking being already overly complicated. Maybe I should try implementing this feature?

My mistake, it is. The problem was that names bound by case and let expressions in Haskell are treated a bit differently.

So, turns are RecordWildCards isn't a replacement for pattern matching after all.

Replacing type classes with records in surprisingly may lead to a better code. Honestly, sometimes type classes are just not flexible enough.

@mdallastella could you increase the character limit for this instance? 500 characters isn't really enough 😎

I have a feeling this is caused by Chris Done's utter hatred for NixOS, but I can't confirm this yet.

HIE Files - coming soon to a GHC near you!

haskell.org/ghc/blog/20190626-

> HIE files are a new type of file that can be emitted by GHC via the -fwrite-ide-info flag. They serialize a bunch of useful information about your source, so that it is easy and fast to access when you need it.

> HIE files will be appearing for the first time in GHC 8.8.

This "function" has a superficial similarity to 'unsafePerformIO' but it is in fact a malevolent agent of chaos. It unpicks the seams of reality (and the 'IO' monad) so that the normal rules no longer apply. It lulls you into thinking it is reasonable, but when you are not looking it stabs you in the back and aliases all of your mutable buffers. The carcass of many a seasoned Haskell programmer lie strewn at its feet.

From github.com/haskell/bytestring/

In the use of ‘inlinePerformIO’
(imported from Data.ByteString.Internal):
Deprecated: "If you think you know what you are doing, use 'unsafePerformIO'. If you are sure you know what you are doing, use 'unsafeDupablePerformIO'. If you enjoy sharing an address space with a malevolent agent of chaos, try 'accursedUnutterablePerformIO'.

I enjoy seeing error messages like this one.

SMS 2 factor is not security. Use anything else when you have the option. Also, Google Voice numbers aren't subject to these attacks.
engadget.com/2019/06/28/cell-p

Look guys. I just write code. Sometimes I do it for money, sometimes I do it for fun, sometimes it's both. How people use it is totally up to them.

<barrucadu> At work we have a large postgres table called "mongodb" with two columns called "collection" and "document", the latter of which is JSONB. Apparently it works well

From on freenode.

Show more
Functional Café

functional.cafe is an instance for people interested in functional programming and languages.