added P20.hs