module ShouldSucceed where

type OL a =  [a]

-- produces the interface:
-- data OL a = MkOL [a] deriving ()
-- ranOAL :: (OL (a, a)) -> [a]
-- this interface was produced by BOTH hbc and nhc

-- the following bogus type sig. was accepted by BOTH hbc and nhc
f x = ranOAL where -- ranOAL :: OL (a,v) -> [a]
--ranOAL :: OL (a,v) -> [v], the right sig.
                   ranOAL ( xs) = mp sd xs


mp f [] = []
mp f (x:xs) = (f x) : mp f xs

sd (f,s) = s




