Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data Widget m v a s n c = Widget {}
- _window :: Lens (Widget m v a s n c) (Widget m' v' a s n c) (WindowT s m v) (WindowT s m' v')
- _gadget :: Lens (Widget m v a s n c) (Widget m v a' s n' c') (GadgetT a s n c) (GadgetT a' s n' c')
- _window' :: Lens' (Widget m v a s n c) (WindowT s m v)
- _gadget' :: Lens' (Widget m v a s n c) (GadgetT a s n c)
- _Widget :: Iso (Widget m v a s n c) (Widget m' v' a' s' n' c') (s -> m v, a -> s -> n (c, s)) (s' -> m' v', a' -> s' -> n' (c', s'))
- _Widget' :: Iso' (Widget m v a s n c) (s -> m v, a -> s -> n (c, s))
- _WrappingWidget :: Iso (Widget m v a s n c) (Widget m' v' a' s' n' c') (WindowT s m v, GadgetT a s n c) (WindowT s' m' v', GadgetT a' s' n' c')
- _WrappingWidget' :: Iso' (Widget m v a s n c) (WindowT s m v, GadgetT a s n c)
- belowWidget :: ((s -> m v, a -> s -> n (c, s)) -> (s' -> m' v', a' -> s' -> n' (c', s'))) -> Widget m v a s n c -> Widget m' v' a' s' n' c'
- underWidget :: ((WindowT s m v, GadgetT a s n c) -> (WindowT s' m' v', GadgetT a' s' n' c')) -> Widget m v a s n c -> Widget m' v' a' s' n' c'
- overWidget :: (Widget m v a s n c -> Widget m' v' a' s' n' c') -> (WindowT s m v, GadgetT a s n c) -> (WindowT s' m' v', GadgetT a' s' n' c')
- aboveWidget :: (Widget m v a s n c -> Widget m' v' a' s' n' c') -> (s -> m v, a -> s -> n (c, s)) -> (s' -> m' v', a' -> s' -> n' (c', s'))
- mkWidget :: (WindowT s m v, GadgetT a s n c) -> Widget m v a s n c
- mkWidget' :: (s -> m v, a -> s -> n (c, s)) -> Widget m v a s n c
- runWidget :: Widget m v a s n c -> (WindowT s m v, GadgetT a s n c)
- runWidget' :: Widget m v a s n c -> (s -> m v, a -> s -> n (c, s))
- statically :: (Monad n, Monoid c) => WindowT s m v -> Widget m v a s n c
- dynamically :: (Applicative m, Monoid v) => GadgetT a s n c -> Widget m v a s n c
Documentation
data Widget m v a s n c Source #
A widget is basically a tuple with Gadget and Window, but with handy instances for implant and dispatch.
Functor n => Functor (Widget m v a s n) Source # | Widget Functor is lawful 1: fmap id = id (Widget w g) = Widget w (id $ g) = Widget w g 2: fmap (f . g) = fmap f . fmap g (Widget w gad) = Widget w ((f . g) $ gad) = Widget w ((fmap f . fmap g) gad) |
(Applicative m, Monad n, Monoid v) => Applicative (Widget m v a s n) Source # | Widget Applicative is lawful Identity: pure id * v = v Widget mempty (pure id) * Widget vw vg = Widget (mempty <> vw) (pure id * vg) = Widget vw vg Composition: pure (.) * u * v * w = u * (v * w) Widget mempty (pure (.)) * Widget uw ug * Widget vw vg * Widget ww wg = = Widget (mempty <> uw <> vw <> ww) (pure (.) * ug * vg * wg = Widget (uw <> vw <> ww) (ug * (vg * wg)) = Widget (uw <> (vw <> ww)) (ug * (vg * wg)) = Widget uw ug * (Widget vw vg * Widget ww wg) Interchange: u * pure y = pure ($ y) * u Widget uw ug * Widget mempty (pure y) = Widget (uw <> mempty) (ug * pure y) = Widget (mempty <> uw) (pure ($ y) * ug) = Widget mempty (pure $y) * Widget uw ug |
(Applicative m, Monad n, Semigroup v, Semigroup c) => Semigroup (Widget m v a s n c) Source # | |
(Applicative m, Monad n, Monoid v, Monoid c) => Monoid (Widget m v a s n c) Source # | |
Monad n => Dispatch (Widget m v a s n c) (Widget m v b s n c) a b Source # | |
(Monad m, Monad n) => Implant (Widget m v a s n c) (Widget m v a t n c) s t Source # | |
type Dispatched (Widget m v a s n c) Source # | |
type Implanted (Widget m v a s n c) Source # | |
_window :: Lens (Widget m v a s n c) (Widget m' v' a s n c) (WindowT s m v) (WindowT s m' v') Source #
polymorphic lens to the window of a widget
_gadget :: Lens (Widget m v a s n c) (Widget m v a' s n' c') (GadgetT a s n c) (GadgetT a' s n' c') Source #
polymorphic lens to the gadget of a widget
_window' :: Lens' (Widget m v a s n c) (WindowT s m v) Source #
non polymorphic lens to the window of a widget
_gadget' :: Lens' (Widget m v a s n c) (GadgetT a s n c) Source #
non polymorphic lens to the gadget of a widget
_Widget :: Iso (Widget m v a s n c) (Widget m' v' a' s' n' c') (s -> m v, a -> s -> n (c, s)) (s' -> m' v', a' -> s' -> n' (c', s')) Source #
_Widget' :: Iso' (Widget m v a s n c) (s -> m v, a -> s -> n (c, s)) Source #
Non polymorphic version of _Widget
_WrappingWidget :: Iso (Widget m v a s n c) (Widget m' v' a' s' n' c') (WindowT s m v, GadgetT a s n c) (WindowT s' m' v', GadgetT a' s' n' c') Source #
_WrappingWidget' :: Iso' (Widget m v a s n c) (WindowT s m v, GadgetT a s n c) Source #
Non polymorphic version of _WrappingWidget
belowWidget :: ((s -> m v, a -> s -> n (c, s)) -> (s' -> m' v', a' -> s' -> n' (c', s'))) -> Widget m v a s n c -> Widget m' v' a' s' n' c' Source #
underWidget :: ((WindowT s m v, GadgetT a s n c) -> (WindowT s' m' v', GadgetT a' s' n' c')) -> Widget m v a s n c -> Widget m' v' a' s' n' c' Source #
overWidget :: (Widget m v a s n c -> Widget m' v' a' s' n' c') -> (WindowT s m v, GadgetT a s n c) -> (WindowT s' m' v', GadgetT a' s' n' c') Source #
aboveWidget :: (Widget m v a s n c -> Widget m' v' a' s' n' c') -> (s -> m v, a -> s -> n (c, s)) -> (s' -> m' v', a' -> s' -> n' (c', s')) Source #
runWidget' :: Widget m v a s n c -> (s -> m v, a -> s -> n (c, s)) Source #
dynamically :: (Applicative m, Monoid v) => GadgetT a s n c -> Widget m v a s n c Source #