@@ -254,12 +254,15 @@ yamlMetaBlock = try $ do
254 then return ()
254 then return ()
256 v' <- yamlToMeta v
256 v' <- yamlToMeta v
257− updateState $ \st ->
258+ updateState $ \st -> st{ stateMeta' =
258− let smeta = stateMeta' st
259+ (do m <- stateMeta' st
259− in st{ stateMeta' =
260+ -- if there's already a value, leave it unchanged
260− (do v'' <- v'
261+ case lookupMeta k' m of
261− m <- smeta
262+ Just _ -> return m
262− return $ B.setMeta (T.unpack k) v'' m)}
265+ return $ B.setMeta (T.unpack k) v'' m)}
264 Right Yaml.Null -> return ()
267 Right Yaml.Null -> return ()
265 Right _ -> do
268 Right _ -> do