I can figure out what most literals represent with ppr, e.g. WordPrimL 7 = 7##, CharPrimL 'x' = 'x'#, etc. The only constructor I can't figure out is BytesPrimL:
λ> bytes <- mallocForeignPtrArray @Word8 5
λ> let bytesLit = LitE (BytesPrimL (mkBytes bytes 0 5)
λ> ppr bytesLit
"<binary data>"
So, what code would generate an Exp with a BytesPrimL constructor? What is it supposed to represent?