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