harn-parser 0.8.25

Parser, AST, and type checker for the Harn programming language
Documentation
# HARN-TYP-014 — declaration has the wrong number of type parameters

**Category:** Type checker (TYP)
**Variant:** `Code::TypeParameterArity`

## What it means

A generic declaration (function, type alias, or struct) was written with a
different number of type parameters than the use-site supplies. Harn refuses
to silently fill in missing parameters or discard extra ones — the count must
match exactly.

## Example

```harn
fn pair<T>(a: T, b: T) -> [T; 2] { [a, b] }

// HARN-TYP-014: pair takes 1 type parameter, not 2
let xs = pair::<int, string>(1, "two")
```

## How to fix

- Supply exactly as many type arguments as the declaration declares, or omit
  the explicit list and let Harn infer them.
- If the declaration itself is wrong, edit the `<T, U, ...>` list on the
  declaration to match the arity the callers expect.
- For type aliases and structs, the same rule applies: `Map<K, V>` needs two
  arguments, not one and not three.

## See also

- HARN-TYP-013 — call site uses the wrong number of generic type arguments.
- HARN-TYP-015 — type argument violates a `where`-clause constraint.

## Stability

This code is stable. Its identifier, category, and meaning will not change
without a deprecation cycle. Cross-language tooling and IDE integrations can
dispatch on it directly.