Closures are special functions that can capture the variables available in the surrounding scope. Closures consist of three parts:
|, these arguments can optionally be type annotated, but usually the compiler will infer their types->, again this usually gets inferred{closures.play}