so if your parser combinator primitives are:

(input: str -> result: X, the rest: str)

as they often are, that means a primitive can replace the rest of the string to be parsed with something of its own choice?

(I have some awful usecase that I'll try out)

working on some "will this multithreaded multiprocess code always exit?" stuff at the moment (the answer is no) so back in TLA+ world for a bit but also having a poke at HasCal

+

> LONDON HASKELL NEEDS AN ORGANIZER

goodbye london haskell meetup.com group, you served us all well

(it's using so you bet your life there's 5 different multigigabyte GHC installs happening inside the |sh)

Show thread

ahhh ... recompiling my reddit bot and watching all the category theory get installed...

was trying to think of a hashtag that described two small projects I've made (today's picklerun, and years ago, acme-smuggler) that give you "things" that look like values in your programming language, but actually they do weird stuff...

settled on

github.com/topics/satans-value

another day, another monadic parser combinator library - experimenting again with backtracking and error reporting for a bit of natural language parsing

back to my toy project of learning german grammar by implementing it with megaparsec

was up at 5am sleepless, debugging some DNS troubles on one thing; got me in the mood for working on a DNS testing project I've had as a side-project for ... a decade. was too lazy to do anything with that. 12 hours later, one of the failures it would have detected, a dnssec failure caused by a typo in a zone file, happen on one of my two main zones. ugh. bonus haskell hashtag because there's monads in this project.

> warning: very complex type used.

no shit i'm writing and i come from a background

My most starred github repo, and maybe my favourite, is a package called `acme-smuggler`.

It gives you a function `smuggle` which hides an arbitrary (typeable) value inside ()

smuggle :: t -> ()

and then later on, you can retrieve that value using:

discover :: () -> t

It's just 7 lines of code, described in my blog post: "Smuggling things in a dirty bottom"

benctechnicalblog.blogspot.com

benc's personal instance

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!