Your type must be String → [String] or [Char] → [[Char]].
Your input is a string (list of characters) that displays a list of strings (list of character characters).
Your type here means that it maps the string to ANY type, this is not true.
Edit: alternatively you can use:
splitBy :: [a] -> a -> [[a]]
splitBy [] sep = []
splitBy (nr1 : rest) if nr1 == sep then splitBy rest sep else nr1 : (splitBy rest sep)
. ( ), splitBy "string of words" ' ' [ "string", "of", "words" ].
, [] [[]], :
splitBy [] sep = [[]]
splitBy (nr1 : rest) sep = if nr1 == sep
then [] : splitBy rest sep
else (nr1 : head (splitBy rest sep)) : tail (splitBy rest sep)
: splitBy "List of things" ' ' ===> ["list","of","things"]