
Cool, I sent a pvt msg to @robby and slack shows this: It's 5:13 AM for robby
It’s making me feel pretty guilty that I am disturbing his sleep. Sorry! :slightly_smiling_face:

Oh not at all! I am up

Also, hopefully people don’t have Slack set up to wake them up when they don’t want that.

Wow! Early riser!

Robby’s commute is… substantial.

Sorry about that. I agree with you that there are major problems with the IO Monad. I was also adding that explicitely modeling all effects as Monads might not be the right approach.
Every application runs in a context of it’s environment (it’s not a monadic context, but non the less a context). My point was that if we make a monad that encompasses the entire environment and run the whole application inside it, I don’t think that buys us much over how traditional languages wrap applications in a context to communicate with the outside world. Maybe dealing with the outside shouldn’t be done with a monad.

@pocmatos I read the problem in your tweet and had the same question

my first thought was “is there some custom I don’t know about relating ages and cakes?”

@lars.schuetze has joined the channel

Well, the idea of monad transformers and extensible effects is to get the kind of granularity you’re describing, and you can do that with a monadic interface, so I think it isn’t monads that are the problem per se, but I agree that the idea of one monolithic effect that does everything doesn’t work.

@samth this turned out to be a very interesting story. Since my wife is out on a business trip I ended up taking this to a german neighbor friend of mine. I had the same thought that there was some missing tradition I didn’t know about.

He told me that it’s typical in Bavarian education to give problems without a solution for the children to understand there’s not all problems can be solved. They called them Kapitänsaufgabe.

I Googled it and found a Wikipedia page.


Turns out there’s an English version.


Quoting from Wikipedia the interesting part:

Many children in elementary school, from different parts of the world, attempt to “solve” this nonsensical problem by giving the answer 36, obtained by adding the numbers 26 and 10.[4] It has been suggested that this indicates schooling and education fail to teach children critical thinking, and that a question may be unsolvable.[4] But, others have countered that in education students are taught that all questions have a solution and that giving any answer is better than leaving it blank, hence the attempt to “solve” it.[4]

I am very surprised to have heard this for the first time in my life at this age. Still not sure what to make of it though.

Wonder if this kind of educational choices are backed by any real research.

I was wondering if that was a trick question.

If it is a step within larger curriculum of proper application of knowledge I guess it could be OK. The times I have seen questions like that they seem to be in isolation and my take is that sure would be confusing.

If not cruel

seems bad

There used to be a pop math competition over here when I was in primary school that sometimes had those types of questions. You certainly didn’t expect that some questions wouldn’t have an answer and even now I remember, as an ~8-year-old, feeling like a complete idiot for not being able to figure out “the trick” behind the question.

Ah, so are you suggesting that the IO monad should be replace with more granular stacks of transformers or effects?

I think I might have misunderstood your original suggestion.

Yeah, so I, not being German, found it odd and doubted my own abilities (in German and Math) for quite a bit which amused my daughter. There were 6 questions following the same style for homework but this one (number 3) was the special one without an answer.

I don’t think I was particularly suggesting anything, so beats me! I was just trying to point out a problem with IO in Haskell that makes building certain kinds of abstractions impossible.

@noahstorym has joined the channel