If you are an experienced Haskeller I would be very glad if you look over the project and problems in an issue. Because mostly I have no idea whether what I am doing is idiomatic or not.
taggedImage :: Parser BaseImage
taggedImage = do
name <- many (noneOf ":")
reservedOp ":"
tag <- many (noneOf "\n")
return $ TaggedImage name tag
Would end up something like: taggedImage :: Parser BaseImage
taggedImage = TaggedImage <$> (many (noneOf "\n") <* reservedOp ":")
<*> (many (noneOf "\n")