type snowflake = abstract type user = abstract type partial_member = { ?nick: string option; roles: snowflake list; joined_at: string; deaf: bool; mute: bool; } type member = { inherit partial_member; user: user; } type member_update = { guild_id : snowflake; member: member; } type t = { inherit member; guild_id: snowflake; }