module Miso.Trace
(
trace
, traceId
, traceWith
, traceShow
, traceShowId
, traceShowWith
, traceM
, traceShowM
, traceError
, traceErrorId
, traceErrorWith
, traceErrorShow
, traceErrorShowId
, traceErrorShowWith
, traceErrorM
, traceErrorShowM
, traceWarn
, traceWarnId
, traceWarnWith
, traceWarnShow
, traceWarnShowId
, traceWarnShowWith
, traceWarnM
, traceWarnShowM
, traceTo
) where
import System.IO.Unsafe (unsafePerformIO)
import Prelude
import Miso.FFI
import Miso.String
trace
:: ToMisoString s
=> s
-> a
-> a
trace :: forall s a. ToMisoString s => s -> a -> a
trace = (MisoString -> IO ()) -> s -> a -> a
forall s a. ToMisoString s => (MisoString -> IO ()) -> s -> a -> a
traceTo MisoString -> IO ()
consoleLog
traceId :: ToMisoString s => s -> s
traceId :: forall s. ToMisoString s => s -> s
traceId = (s -> s) -> s -> s
forall s a. ToMisoString s => (a -> s) -> a -> a
traceWith s -> s
forall a. a -> a
id
traceWith
:: ToMisoString s
=> (a -> s)
-> a
-> a
traceWith :: forall s a. ToMisoString s => (a -> s) -> a -> a
traceWith a -> s
f a
a = s -> a -> a
forall s a. ToMisoString s => s -> a -> a
trace (a -> s
f a
a) a
a
traceShow
:: Show a
=> a
-> b
-> b
traceShow :: forall a b. Show a => a -> b -> b
traceShow = String -> b -> b
forall s a. ToMisoString s => s -> a -> a
trace (String -> b -> b) -> (a -> String) -> a -> b -> b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
traceShowId :: Show a => a -> a
traceShowId :: forall a. Show a => a -> a
traceShowId = (a -> String) -> a -> a
forall s a. ToMisoString s => (a -> s) -> a -> a
traceWith a -> String
forall a. Show a => a -> String
show
traceShowWith
:: Show b
=> (a -> b)
-> a
-> a
traceShowWith :: forall b a. Show b => (a -> b) -> a -> a
traceShowWith a -> b
f = (a -> String) -> a -> a
forall s a. ToMisoString s => (a -> s) -> a -> a
traceWith (b -> String
forall a. Show a => a -> String
show (b -> String) -> (a -> b) -> a -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> b
f)
traceM :: (ToMisoString s, Applicative f) => s -> f ()
traceM :: forall s (f :: * -> *).
(ToMisoString s, Applicative f) =>
s -> f ()
traceM s
s = s -> f () -> f ()
forall s a. ToMisoString s => s -> a -> a
trace s
s (f () -> f ()) -> f () -> f ()
forall a b. (a -> b) -> a -> b
$ () -> f ()
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
traceShowM :: (Show a, Applicative f) => a -> f ()
traceShowM :: forall a (f :: * -> *). (Show a, Applicative f) => a -> f ()
traceShowM = String -> f ()
forall s (f :: * -> *).
(ToMisoString s, Applicative f) =>
s -> f ()
traceM (String -> f ()) -> (a -> String) -> a -> f ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
traceError
:: ToMisoString s
=> s
-> a
-> a
traceError :: forall s a. ToMisoString s => s -> a -> a
traceError = (MisoString -> IO ()) -> s -> a -> a
forall s a. ToMisoString s => (MisoString -> IO ()) -> s -> a -> a
traceTo MisoString -> IO ()
consoleError
traceErrorId :: ToMisoString s => s -> s
traceErrorId :: forall s. ToMisoString s => s -> s
traceErrorId = (s -> s) -> s -> s
forall s a. ToMisoString s => (a -> s) -> a -> a
traceErrorWith s -> s
forall a. a -> a
id
traceErrorWith
:: ToMisoString s
=> (a -> s)
-> a
-> a
traceErrorWith :: forall s a. ToMisoString s => (a -> s) -> a -> a
traceErrorWith a -> s
f a
a = s -> a -> a
forall s a. ToMisoString s => s -> a -> a
traceError (a -> s
f a
a) a
a
traceErrorShow
:: Show a
=> a
-> b
-> b
traceErrorShow :: forall a b. Show a => a -> b -> b
traceErrorShow = String -> b -> b
forall s a. ToMisoString s => s -> a -> a
traceError (String -> b -> b) -> (a -> String) -> a -> b -> b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
traceErrorShowId :: Show a => a -> a
traceErrorShowId :: forall a. Show a => a -> a
traceErrorShowId = (a -> String) -> a -> a
forall s a. ToMisoString s => (a -> s) -> a -> a
traceErrorWith a -> String
forall a. Show a => a -> String
show
traceErrorShowWith
:: Show b
=> (a -> b)
-> a
-> a
traceErrorShowWith :: forall b a. Show b => (a -> b) -> a -> a
traceErrorShowWith a -> b
f = (a -> String) -> a -> a
forall s a. ToMisoString s => (a -> s) -> a -> a
traceErrorWith (b -> String
forall a. Show a => a -> String
show (b -> String) -> (a -> b) -> a -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> b
f)
traceErrorM :: (ToMisoString s, Applicative f) => s -> f ()
traceErrorM :: forall s (f :: * -> *).
(ToMisoString s, Applicative f) =>
s -> f ()
traceErrorM s
s = s -> f () -> f ()
forall s a. ToMisoString s => s -> a -> a
traceError s
s (f () -> f ()) -> f () -> f ()
forall a b. (a -> b) -> a -> b
$ () -> f ()
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
traceErrorShowM :: (Show a, Applicative f) => a -> f ()
traceErrorShowM :: forall a (f :: * -> *). (Show a, Applicative f) => a -> f ()
traceErrorShowM = String -> f ()
forall s (f :: * -> *).
(ToMisoString s, Applicative f) =>
s -> f ()
traceErrorM (String -> f ()) -> (a -> String) -> a -> f ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
traceWarn
:: ToMisoString s
=> s
-> a
-> a
traceWarn :: forall s a. ToMisoString s => s -> a -> a
traceWarn = (MisoString -> IO ()) -> s -> a -> a
forall s a. ToMisoString s => (MisoString -> IO ()) -> s -> a -> a
traceTo MisoString -> IO ()
consoleWarn
traceWarnId :: ToMisoString s => s -> s
traceWarnId :: forall s. ToMisoString s => s -> s
traceWarnId = (s -> s) -> s -> s
forall s a. ToMisoString s => (a -> s) -> a -> a
traceWarnWith s -> s
forall a. a -> a
id
traceWarnWith
:: ToMisoString s
=> (a -> s)
-> a
-> a
traceWarnWith :: forall s a. ToMisoString s => (a -> s) -> a -> a
traceWarnWith a -> s
f a
a = s -> a -> a
forall s a. ToMisoString s => s -> a -> a
traceWarn (a -> s
f a
a) a
a
traceWarnShow
:: Show a
=> a
-> b
-> b
traceWarnShow :: forall a b. Show a => a -> b -> b
traceWarnShow = String -> b -> b
forall s a. ToMisoString s => s -> a -> a
traceWarn (String -> b -> b) -> (a -> String) -> a -> b -> b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
traceWarnShowId :: Show a => a -> a
traceWarnShowId :: forall a. Show a => a -> a
traceWarnShowId = (a -> String) -> a -> a
forall s a. ToMisoString s => (a -> s) -> a -> a
traceWarnWith a -> String
forall a. Show a => a -> String
show
traceWarnShowWith
:: Show b
=> (a -> b)
-> a
-> a
traceWarnShowWith :: forall b a. Show b => (a -> b) -> a -> a
traceWarnShowWith a -> b
f = (a -> String) -> a -> a
forall s a. ToMisoString s => (a -> s) -> a -> a
traceWarnWith (b -> String
forall a. Show a => a -> String
show (b -> String) -> (a -> b) -> a -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> b
f)
traceWarnM :: (ToMisoString s, Applicative f) => s -> f ()
traceWarnM :: forall s (f :: * -> *).
(ToMisoString s, Applicative f) =>
s -> f ()
traceWarnM s
s = s -> f () -> f ()
forall s a. ToMisoString s => s -> a -> a
traceWarn s
s (f () -> f ()) -> f () -> f ()
forall a b. (a -> b) -> a -> b
$ () -> f ()
forall a. a -> f a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
traceWarnShowM :: (Show a, Applicative f) => a -> f ()
traceWarnShowM :: forall a (f :: * -> *). (Show a, Applicative f) => a -> f ()
traceWarnShowM = String -> f ()
forall s (f :: * -> *).
(ToMisoString s, Applicative f) =>
s -> f ()
traceWarnM (String -> f ()) -> (a -> String) -> a -> f ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. a -> String
forall a. Show a => a -> String
show
traceTo
:: ToMisoString s
=> (MisoString -> IO ())
-> s
-> a
-> a
{-# NOINLINE traceTo #-}
traceTo :: forall s a. ToMisoString s => (MisoString -> IO ()) -> s -> a -> a
traceTo MisoString -> IO ()
f s
s a
a = IO a -> a
forall a. IO a -> a
unsafePerformIO (IO a -> a) -> IO a -> a
forall a b. (a -> b) -> a -> b
$ do
MisoString -> IO ()
f (s -> MisoString
forall str. ToMisoString str => str -> MisoString
toMisoString s
s)
a -> IO a
forall a. a -> IO a
forall (f :: * -> *) a. Applicative f => a -> f a
pure a
a