module LLVM.DSL.Debug.StablePtr where import Foreign.StablePtr (StablePtr, castStablePtrToPtr) import Control.Monad (when) {-# INLINE trace #-} trace :: String -> StablePtr a -> IO (StablePtr a) trace :: forall a. String -> StablePtr a -> IO (StablePtr a) trace String name StablePtr a s = do Bool -> IO () -> IO () forall (f :: * -> *). Applicative f => Bool -> f () -> f () when Bool False (IO () -> IO ()) -> IO () -> IO () forall a b. (a -> b) -> a -> b $ String -> IO () putStrLn (String -> IO ()) -> String -> IO () forall a b. (a -> b) -> a -> b $ String "EventIterator." String -> String -> String forall a. [a] -> [a] -> [a] ++ String name String -> String -> String forall a. [a] -> [a] -> [a] ++ String ": " String -> String -> String forall a. [a] -> [a] -> [a] ++ (Ptr () -> String forall a. Show a => a -> String show (Ptr () -> String) -> Ptr () -> String forall a b. (a -> b) -> a -> b $ StablePtr a -> Ptr () forall a. StablePtr a -> Ptr () castStablePtrToPtr (StablePtr a -> Ptr ()) -> StablePtr a -> Ptr () forall a b. (a -> b) -> a -> b $ StablePtr a s) StablePtr a -> IO (StablePtr a) forall a. a -> IO a forall (m :: * -> *) a. Monad m => a -> m a return StablePtr a s