pub fn init(caches: List(String)) -> Nil
pub fn invalidate_all(cache_name: String) -> Nil
pub fn invalidate_specific(arg: a, cache_name: String) -> Nil
pub fn memo(arg: a, cache_name: String, fun: fn(a) -> b) -> b