# `ShotDs.Data.Substitution`
[🔗](https://github.com/jcschuster/ShotDs/blob/v1.0.0/lib/shot_ds/data/substitution.ex#L1)

Represents a substitution.

# `t`

```elixir
@type t() :: %ShotDs.Data.Substitution{
  fvar: ShotDs.Data.Declaration.free_var_t(),
  term_id: ShotDs.Data.Term.term_id()
}
```

The type of a substitution.

A substitution is made up by the free variable to substitute and the id for
its replacement term.

# `new`

```elixir
@spec new(ShotDs.Data.Declaration.free_var_t(), ShotDs.Data.Term.term_id()) :: t()
```

Creates a new substitution for the given free variable and the id for its
replacement term.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
