Run.State.External
- Package
- purescript-run-external-state
- Repository
- Mateiadrielrafael/purescript-run-external-state
Alternative representation of State allowing for different interpreters
#ExternalState Source
data ExternalState s aAlternative representation of State allowing for different interpreters
Constructors
#EXTERNAL_STATE Source
type EXTERNAL_STATE s r = (externalState :: ExternalState s | r)#StateRunner Source
type StateRunner m s = { get :: m s, set :: s -> m Unit }Pair of getter and setter functions for interpreting some external state
#get Source
get :: forall r s. Run (EXTERNAL_STATE s r) sGet the current state
#runExternalState Source
runExternalState :: forall s r. StateRunner (Run r) s -> (Run (EXTERNAL_STATE s r)) ~> (Run r)Run some external state by using a pair of get and set functions
#runExternalStateEffectfully Source
runExternalStateEffectfully :: forall s r. StateRunner Effect s -> (Run ((EXTERNAL_STATE s) + (EFFECT r))) ~> (Run (EFFECT r))Run the external state by calling some effects
#runExternalStateUsingRef Source
runExternalStateUsingRef :: forall s r. Ref s -> (Run ((EXTERNAL_STATE s) + (EFFECT r))) ~> (Run (EFFECT r))Save the external state inside a ref
#imapExternaState Source
imapExternaState :: forall s a r. (s -> a) -> (a -> s) -> (Run ((EXTERNAL_STATE a) + (EXTERNAL_STATE s r))) ~> (Run (EXTERNAL_STATE s r))External state is invariant over the state type parameter, so we can imap is.
#focusExternalState Source
focusExternalState :: forall s a r. Lens' s a -> (Run ((EXTERNAL_STATE a) + (EXTERNAL_STATE s r))) ~> (Run (EXTERNAL_STATE s r))Run some state under the focus of a bigger state
#toInternalState Source
toInternalState :: forall r s a. Run ((EXTERNAL_STATE s) + (STATE s r)) a -> Run (STATE s r) aConvert the external state to internal state
#runExternalStatePure Source
runExternalStatePure :: forall r s a. s -> Run ((EXTERNAL_STATE s) + (STATE s r)) a -> Run r (s /\ a)Converts the state to internal state and then runs it purely
#gets Source
gets :: forall r a b. (a -> b) -> Run (EXTERNAL_STATE a r) bGet the current state and run a function over it
#modify Source
modify :: forall r s. (s -> s) -> Run (EXTERNAL_STATE s r) sRun a function over the current state
#modify_ Source
modify_ :: forall r s. (s -> s) -> Run (EXTERNAL_STATE s r) UnitRun a function over the current state, discarding the result
#modifying Source
modifying :: forall s a b r. Setter s s a b -> (a -> b) -> Run (EXTERNAL_STATE s r) UnitRun a function by focusing on the state using an optic
#assign Source
assign :: forall s a b r. Setter s s a b -> b -> Run (EXTERNAL_STATE s r) UnitSet the value of a focus on the state
#use Source
use :: forall s t a b r. Getter s t a b -> Run (EXTERNAL_STATE s r) aGet the value of a focus on the state
#_externalState Source
_externalState :: Proxy "externalState"- Modules
- Run.
State. External