Given the following code:
module Log where
import Control.Applicative
data MessageType = Info
| Warning
| Error Int
type TimeStamp = Int
data LogMessage = LogMessage MessageType TimeStamp String
| Unknown String
I want to create a log parser like this:
module LogAnalysis where
import Log
parseMessage :: String -> LogMessage
parseMessage xs
| length(words(xs)) < 3 = Unknown xs
| notElem(head(words(xs)) ["I", "E", "W"]) = Unknown xs
| otherwise = LogMessage Info 3 head(words(xs))
But GHC gives me "• Couldn't match type ‘[a0] -> a0’ with ‘[Char]’
Expected type: String
Actual type: [a0] -> a0"
So it thinks I am giving it the function head, when I would like to give it the output.
How do I fix this?
Thanks in advance,