# Guard.Services

Extracts the Effect service requirements from a Guard or Guard adapter.

## Signatures

```ts
type Services<T> = [
    T
] extends [
    Guard<infer _I, infer _O, infer _E, infer R>
] ? R : [
    T
] extends [
    AsGuard<infer _I, infer _O, infer _E, infer R>
] ? R : never;
```

## Why

Service extraction makes environment composition visible in combinator signatures.

## Ownership and lifetime

This compile-time type acquires no resources; service lifetime is governed by the resulting Effect or Layer.

## Examples

```ts
import type { Guard } from "@typed/guard"
type Services = Guard.Services<Guard<string, number, never, { readonly Db: unique symbol }>>
```
