module Chiasma.Pane where import Chiasma.Data.Ident (Ident) import Chiasma.Data.TmuxId (PaneId) import qualified Chiasma.Data.View as Tmux (View (View)) import Chiasma.Data.Views (Views) import qualified Chiasma.View as Views (insertPane) addPane :: Member (AtomicState Views) r => Ident -> Sem r (Tmux.View PaneId) addPane :: forall (r :: EffectRow). Member (AtomicState Views) r => Ident -> Sem r (View PaneId) addPane Ident ident = View PaneId pane View PaneId -> Sem r () -> Sem r (View PaneId) forall (f :: * -> *) a b. Functor f => a -> f b -> f a <$ (Views -> Views) -> Sem r () forall s (r :: EffectRow). Member (AtomicState s) r => (s -> s) -> Sem r () atomicModify' (View PaneId -> Views -> Views Views.insertPane View PaneId pane) where pane :: View PaneId pane = Ident -> Maybe PaneId -> View PaneId forall a. Ident -> Maybe a -> View a Tmux.View Ident ident Maybe PaneId forall a. Maybe a Nothing