module Plutarch.Monadic ((>>=), (>>), fail) where
import Prelude hiding (fail, (>>), (>>=))
import Data.String (fromString)
import Plutarch (pgetConfig, tracingMode, pattern DetTracing)
import Plutarch.Prelude
(>>=) :: (x -> Term s a) -> x -> Term s a
>>= :: forall x (s :: S) (a :: PType). (x -> Term s a) -> x -> Term s a
(>>=) = forall a. a -> a
id
(>>) :: (x -> Term s a) -> x -> Term s a
>> :: forall x (s :: S) (a :: PType). (x -> Term s a) -> x -> Term s a
(>>) = forall a. a -> a
id
fail :: String -> Term s a
fail :: forall (s :: S) (a :: PType). String -> Term s a
fail String
s =
forall (s :: S) (a :: PType). (Config -> Term s a) -> Term s a
pgetConfig \Config
c -> case Config -> TracingMode
tracingMode Config
c of
TracingMode
DetTracing -> forall (s :: S) (a :: PType). Term s PString -> Term s a
ptraceError Term s PString
"Pattern matching failure in QualifiedDo syntax"
TracingMode
_ -> forall (s :: S) (a :: PType). Term s PString -> Term s a
ptraceError forall a b. (a -> b) -> a -> b
$ forall a. IsString a => String -> a
fromString String
s