Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
Protected Reactive Fields
This module defines several classes and operations that are used to create reactive fields and to bind reactive fields in the view to reactive fields in the model.
FIXME: Due to the restrictions in the type classes, the current version uses Model.ProtectedModel.ProtectedModelInternals.ProtectedModel.
Documentation
type Setter a b c = ProtectedModel b c -> a -> IO () Source
type Getter a b c = ProtectedModel b c -> IO a Source
type Modifier a b c = ProtectedModel b c -> (a -> a) -> IO () Source
type ModifierIO a b c = ProtectedModel b c -> (a -> IO a) -> IO () Source
class ReactiveField a b c d | a -> b, a -> c, a -> d where Source
Event c => ReactiveField (ReactiveElement a b c) a b c |
onChanged :: (Event d, ReactiveField a b c d) => ProtectedModel c d -> a -> IO () -> IO () Source
class ReactiveField a b c d => ReactiveReadField a b c d where Source
Event c => ReactiveReadField (ReactiveElement a b c) a b c |
class ReactiveWriteField a b c d where Source
Event c => ReactiveWriteField (ReactiveElement a b c) a b c |
class (ReactiveField a b c d, ReactiveReadField a b c d, ReactiveWriteField a b c d) => ReactiveReadWriteField a b c d where Source
Nothing
modifier :: a -> Modifier b c d Source
modifierIO :: a -> ModifierIO b c d Source
Event c => ReactiveReadWriteField (ReactiveElement a b c) a b c |
data Event c => ReactiveElement a b c Source
Event c => ReactiveReadWriteField (ReactiveElement a b c) a b c | |
Event c => ReactiveWriteField (ReactiveElement a b c) a b c | |
Event c => ReactiveReadField (ReactiveElement a b c) a b c | |
Event c => ReactiveField (ReactiveElement a b c) a b c |
type FieldAccessor a b c = ProtectedModel b c -> ReactiveFieldReadWrite IO a Source
mkFieldAccessor :: (InitialisedEvent c, Event c) => ReactiveElement a b c -> ProtectedModel b c -> ReactiveFieldReadWrite IO a Source