-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Bindings for C++ demangling routines -- -- Please see the README on Github at -- https://github.com/0xd34df00d/cppfilt#readme @package cppfilt @version 0.1.0.0 -- | This module provides the type class (and a few implementations) for -- values that can be efficiently converted to/from CString. -- Instances for String and strict ByteString are provided, -- and the use of ByteString is recommended if performance is a -- concern. module Data.CStringRepresentable -- | Represents values that can be efficiently converted to and from -- CStrings. class CStringRepresentable a -- | Perform a function on the CString representation of the value. toCString :: CStringRepresentable a => a -> (CString -> IO b) -> IO b -- | Convert CString to a value of the type. The ownership is not -- transferred. fromCString :: CStringRepresentable a => CString -> IO a -- | Strings can be represented as CStrings (albeit -- conversions are inefficient). -- | ByteStrings can be represented as CStrings. instance Data.CStringRepresentable.CStringRepresentable GHC.Base.String instance Data.CStringRepresentable.CStringRepresentable Data.ByteString.Internal.ByteString -- | This module provides bindings to the platform C++ ABI demangling -- routines (where the platform is currently limited to gcc). Any -- string-like type implementing CStringRepresentable can be used, -- though strict bytestrings are the most performant. -- -- This module provides the raw IO-living functions. Thin wrappers -- pretending to be pure live in the System.Demangle.Pure module. module System.Demangle -- | Try to demangle a mangled C++ name. demangle :: CStringRepresentable s => s -> IO (Maybe s) -- | This module provides bindings to the platform C++ ABI demangling -- routines (where the platform is currently limited to gcc). Any -- string-like type implementing CStringRepresentable can be used, -- though strict bytestrings are the most performant. -- -- This module provides the pure-ish functions which hide the intrinsic -- IO nature of doing FFI calls behind unsafePerformIO. -- Demangling is referentially transparent, though, so that should be -- fine. module System.Demangle.Pure -- | Try to demangle a mangled C++ name. demangle :: CStringRepresentable s => s -> Maybe s