examples/canon.hs