+
+printBlock ∷ Block → IO ()
+printBlock b
+ = do putStrLn "- Block header:"
+ print $ blockHeader b
+ putStrLn "- Block metadata sub-blocks:"
+ mapM_ printSub $ blockMetadata b
+ where
+ printSub ∷ SubBlock → IO ()
+ printSub sub
+ | isJust (fromSubBlock sub ∷ Maybe WVBitstream)
+ = putStrLn ( "(WV Bitstream omitted: " ⧺
+ show (metaSize sub) ⧺
+ " bytes)"
+ )
+ | otherwise
+ = print sub