module Ribosome.Host.Effect.Log where

type StderrLog =
  Tagged "stderr" Log

type FileLog =
  Tagged "file" Log

stderrLog ::
  Member StderrLog r =>
  InterpreterFor Log r
stderrLog :: forall (r :: EffectRow). Member StderrLog r => InterpreterFor Log r
stderrLog =
  forall {k1} (k2 :: k1) (e :: (* -> *) -> * -> *) (r :: EffectRow)
       a.
Member (Tagged k2 e) r =>
Sem (e : r) a -> Sem r a
forall (k2 :: Symbol) (e :: (* -> *) -> * -> *) (r :: EffectRow) a.
Member (Tagged k2 e) r =>
Sem (e : r) a -> Sem r a
tag @"stderr"

fileLog ::
  Member FileLog r =>
  InterpreterFor Log r
fileLog :: forall (r :: EffectRow). Member FileLog r => InterpreterFor Log r
fileLog =
  forall {k1} (k2 :: k1) (e :: (* -> *) -> * -> *) (r :: EffectRow)
       a.
Member (Tagged k2 e) r =>
Sem (e : r) a -> Sem r a
forall (k2 :: Symbol) (e :: (* -> *) -> * -> *) (r :: EffectRow) a.
Member (Tagged k2 e) r =>
Sem (e : r) a -> Sem r a
tag @"file"