module type T { type t; snapshot: pure fn!(store: t) -> Int; }