Tried to mimic the reverse function to the ADT List below,
data List a = Nil | Cons a (List a) deriving (Show)
reverseList = convert . reverse'
where
reverse' Nil = []
reverse' (Cons x list) = reverse' list ++ [x]
convert [] = Nil
convert (x:xs) = Cons x (convert xs)
The reverseList is composed of convert and reverse', how to achieve it optimally for instance without the aid of the built-in list?