This is a program to make mazes and print them using Unicode box drawing characters. It serves as an example of using the union-find-array Haskell package, and its monad UnionM, together with the STT and RandT monad transformers. You can also solve the mazes interactively in a terminal window, which is an example of using the MaybeT, StateT, and ReaderT transformers, as well as lenses.
This program is in the Public Domain.