{-# LANGUAGE ImpredicativeTypes #-} {-# OPTIONS_GHC -Wno-x-partial #-} module PList1 where -- Polymorphic lists 1: requires smart-app-res type Sid = forall a . a -> a ids :: [Sid] ids = [] -- requires smart-app-res test0 :: [Sid] test0 = (\x->x) : ids test1 :: [Sid] -- SLPJ added test1 = ids ++ test0 test2 :: [Sid] test2 = tail test1 test3 :: [Sid] -- SLPJ added test3 = reverse test2 test4 = (tail::([Sid]->[Sid])) test2 test5 = (head::([Sid]->Sid)) test2