replace_entities ('&':xs) =
let (b, a) = break (== ';') xs in
case (lookupEntity b, a) of
- (Just c, ';':as) -> c : replace_entities as
+ (Just s, ';':as) -> s ++ replace_entities as
_ -> '&' : replace_entities xs
replace_entities (x:xs) = x : replace_entities xs