added P16.hs