tcfail043.hs:38:17: error: [GHC-39999] • Ambiguous type variable ‘a0’ arising from a use of ‘gt’ prevents the constraint ‘(Ord_ a0)’ from being solved. Relevant bindings include bs :: [a0] (bound at tcfail043.hs:38:8) a :: a0 (bound at tcfail043.hs:38:6) search :: a0 -> [a0] -> Bool (bound at tcfail043.hs:37:1) Probable fix: use a type annotation to specify what ‘a0’ should be. Potentially matching instance: instance Ord_ Int -- Defined at tcfail043.hs:34:10 • In the expression: gt (hd bs) a In the expression: if gt (hd bs) a then False else if eq a (hd bs) then True else search a (tl bs) In the expression: \ a bs -> if gt (hd bs) a then False else if eq a (hd bs) then True else search a (tl bs) tcfail043.hs:40:25: error: [GHC-39999] • Ambiguous type variable ‘a0’ arising from a use of ‘eq’ prevents the constraint ‘(Eq_ a0)’ from being solved. Relevant bindings include bs :: [a0] (bound at tcfail043.hs:38:8) a :: a0 (bound at tcfail043.hs:38:6) search :: a0 -> [a0] -> Bool (bound at tcfail043.hs:37:1) Probable fix: use a type annotation to specify what ‘a0’ should be. Potentially matching instances: instance Eq_ Int -- Defined at tcfail043.hs:20:10 instance Eq_ a => Eq_ [a] -- Defined at tcfail043.hs:23:10 • In the expression: eq a (hd bs) In the expression: if eq a (hd bs) then True else search a (tl bs) In the expression: if gt (hd bs) a then False else if eq a (hd bs) then True else search a (tl bs)