Bei einem Monoid handelt es sich um eine algebraische Struktur. Was bedeutet das? Nun, in der Mathematik gibt es Mengen von Objekten (Zahlen sind zum beispiel Objekte). Auf diese Mengen lassen sich Operationen anwenden. Je nach dem, welche Eigenschaften diese Operation über dieser Menge hat, nennt man diese Struktur eine Algebra, eine Halbgruppe, Monoid oder Gruppe.
Beispiel, wir haben eine Menge S von irgendwelchen Objekten. Zusätzlich haben wir einen Operator "$":
1.) "$" ist abgeschlosen, das bedeutet, wenn du "$" auf beliebige Elemente von S anwendest, kommt wieder ein Element aus S als Ergebnis heraus: S $ S -> S
Wenn diese Eigenschaft gegeben ist, dann nennt man die Algebraische Struktur (S, $) eine "Algebra".
2.) Wenn zusätzlich zur Abgeschlossenheit der Operator "$" auch noch assoziativ ist, dann nennt man die Struktur (S, $) eine Halbgruppe
Assoziativ: (a $ b) $ c = a $ ( b $ c) für alle a,b,c € S
3.) Wenn zusätzlich zur Abgeschlossenheit und zur Assoziativität es noch ein "Einselement" gibt, dann nennt man diese Struktur einen Monoid
Einselement ist ein Element, welches in Verbindung mit dem Operator "$" neutral ist: a $ f = a wobei a, f € S sind und f halt das "Einselement" ist (mit "Eins" ist nicht die Zahl gemeint, besser ist die Bezeichnung "neutrales Element").
Ich habe mal das € als "Element von" verwendet. Hoffe das hat geholfen, falls nicht, einfach noch mal fragen.
Was das jetzt in Verbindung mit Haskell bedeutet kann ich nicht sagen, aber vielleicht ergibt sich ja für dich da ein Sinn.
VG