----------------------------------------------------------------------------- -- | -- Module : Disco.Effects.Input -- Copyright : disco team and contributors -- Maintainer : byorgey@gmail.com -- -- SPDX-License-Identifier: BSD-3-Clause -- -- Utility functions for input effect. -- ----------------------------------------------------------------------------- module Disco.Effects.Input ( module Polysemy.Input , inputToState ) where import Polysemy import Polysemy.Input import Polysemy.State -- | Run an input effect in terms of an ambient state effect. inputToState :: forall s r a. Member (State s) r => Sem (Input s ': r) a -> Sem r a inputToState = interpret (\case { Input -> get @s })