/**
 * Status — a discriminated union (ADT) for character life state.
 *
 * alive | dead
 */
export type Status = { readonly kind: 'alive' } | { readonly kind: 'dead' };

export const StatusAlive: Status = { kind: 'alive' };
export const StatusDead: Status = { kind: 'dead' };

export function isAlive(s: Status): s is { kind: 'alive' } {
  return s.kind === 'alive';
}

export function isDead(s: Status): s is { kind: 'dead' } {
  return s.kind === 'dead';
}
