I haven’t time to say much about the latest Haskell exercise right now, except that it’s a warm-up for a less horrendously inefficient implementation to come. It can find the complete set of n-ominoes, given the set of (n-1)-ominoes - but not quickly.
I was tickled by the idea of defining a Polyomino as a recursive datatype, such that every Polyomino is either a Monomino or another Polyomino with a Monomino stuck on it somewhere…