module Effectful.Zoo.Console.Dynamic.Api
  ( Console (..),
    print,
  ) where

import Effectful
import Effectful.Dispatch.Dynamic
import Effectful.Zoo.Console.Dynamic.Effect
import Effectful.Zoo.Core
import HaskellWorks.Prelude

print :: ()
  => HasCallStack
  => r <: Console i
  => i
  -> Eff r ()
print :: forall (r :: [Effect]) i.
(HasCallStack, r <: Console i) =>
i -> Eff r ()
print i
i =
  Console i (Eff r) () -> Eff r ()
forall (e :: Effect) (es :: [Effect]) a.
(HasCallStack, DispatchOf e ~ 'Dynamic, e :> es) =>
e (Eff es) a -> Eff es a
send (Console i (Eff r) () -> Eff r ())
-> Console i (Eff r) () -> Eff r ()
forall a b. (a -> b) -> a -> b
$ i -> Console i (Eff r) ()
forall a (b :: * -> *). a -> Console a b ()
Print i
i