-module(act@state). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([get/1, set/2, update/2]). -spec get(fun((FSK) -> fun((FSK) -> {FSK, FSL}))) -> fun((FSK) -> {FSK, FSL}). get(F) -> act:do(act:get_state(), F). -spec set(FSQ, fun(() -> fun((FSQ) -> {FSQ, FSR}))) -> fun((FSQ) -> {FSQ, FSR}). set(State, F) -> act:do(act:set_state(State), fun(_) -> F() end). -spec update(fun((FSW) -> FSW), fun(() -> fun((FSW) -> {FSW, FSX}))) -> fun((FSW) -> {FSW, FSX}). update(Updater, F) -> act:do(act:update_state(Updater), fun(_) -> F() end).