Worth a comment saying that the following functions just give sample data, if you like. You want to separate out the code that explains / uses monoids from the code that gives "sample" values.