Markov Chain generator
Looks good, the only thing I'd suggest is that since you don't really
rely on having strings as nodes, you can also generalise your
implementation to arbitrary chains, i.e. Chain Char for this particular
main function.  You'll need to change to a GADT (I think) but
otherwise the code would just need a few minor additional changes.