The library can segfault. Pugi requires the document to be kept alive while any nodes are being used, but the Haskell binding doesn't ensure that.
segfault :: IO ()
segfault = forever $ do
bs <- BS.readFile "example.xml"
let Right root = parse def bs
let unattend = fromJust $ child "unattend" root
print $ show unattend
This library can segfault - see philopon/pugixml-hs#5. It probably shouldn't be in Stackage, with the implied safety, until that is fixed.