pub opaque type Store(a)
pub type UnsubCallback(a) = fn(Store(a)) -> Store(a)
pub fn get(store: Store(a)) -> a
pub fn make(value: a) -> Store(a)
pub fn set(store: Store(a), value: a) -> Store(a)
pub fn subscribe( store: Store(a), callback: fn(a) -> Nil, ) -> #(Store(a), fn(Store(a)) -> Store(a))
pub fn subscriber_count(store: Store(a)) -> Int
pub fn update(store: Store(a), updater: fn(a) -> a) -> Store(a)