added P12.hs