Describing types in Hack is largely done through explicit [annotations](link to annotations) in your Hack source code. Hack has a large list of possible annotation types.

<Some sort of table would be interesting here, probably>

# Primitives

# Objects

# `mixed`

# `void`

# `this`

# `noreturn`

# Nullable

# Generics

# Enums

# Callables

<Make sure to mention that class_meth cannot be called on a private method>

# Tuples

# Shapes

# Type Aliases

## Classname<T>

Describing types in Hack is largely done through explicit [annotations](link to annotations) in your Hack source code. Hack has a large list of possible annotation types.

<Some sort of table would be interesting here, probably>

# Primitives

# Objects

# `mixed`

# `void`

# `this`

# `num`

# `noreturn`

# Nullable

# Generics

# Enums

# Callables

<Make sure to mention that class_meth cannot be called on a private method>

# Tuples

# Shapes

# Type Aliases

## Classname<T>

Make sure we document num
Make sure we document num
