You are using the function
(:) :: a -> [a] -> [a]
with incorrectly typed arguments:
myReverse (tail list1) :: [a]
head list1 :: a
list1 a. , , head list1, [a]. GHC , , . , , [a], a.
, , list1 myreverse, (++):
myReverse xs = case (null xs) of
True -> xs
False -> myReverse (tail xs) ++ [head xs]
[head xs] :: [a]
myReverse (tail xs) :: [a]
:
(++) :: [a] -> [a] -> [a]
. ( myReverse:
reverse xs = foldr (\x xs -> xs ++ [x]) [] xs