## Structs§

- Given generic arguments, could they be unified after replacing parameters with inference variables or placeholders. This behavior is toggled using the const generics.

## Enums§

- See
`simplify_type`

. - Generic parameters are pretty much just bound variables, e.g. the type of
`fn foo<'a, T>(x: &'a T) -> u32 { ... }`

can be thought of as`for<'a, T> fn(&'a T) -> u32`

.

## Functions§

- Tries to simplify a type by only returning the outermost injective¹ layer, if one exists.