added P30.hs