That's kind of my point. Usually when you're just learning "general functional programming", you're thinking about, say, (+) as a function that takes two numbers, and returns a number, because you're at the stage of figuring out how something like
fold (+) 0 [1,2,3]
works. Introducing "Semiring" as a concept at the same time can be a bit much for a beginner!I do think it's a useful concept, and that Purescript is an excellent, intermediate-level FP language.