Type shorthand and syntax for [[Crystal]].
# Syntax
## Type Aliases
```crystal
alias Int32OrNil = Int32?
alias Int32OrNil = Int32 | ::Nil
alias Int32Ptr = Int32*
alias Int32Ptr = Pointer(Int32)
alias Int32_8 = Int32[8]
alias Int32_8 = StaticArray(Int32, 8)
alias Int32StringTuple = {Int32, String}
alias Int32StringTuple = Tuple(Int32, String)
alias Int32StringNamedTuple = {x: Int32, y: String}
alias Int32StringNamedTuple = NamedTuple(x: Int32, y: String)
alias Int32ToString = Int32 -> String
alias Int32ToString = Proc(Int32, String)
alias ProcThatReturnsInt32 = -> Int32
alias Int32AndCharToString = Int32, Char -> String
alias ComplexProc = (Int32 -> Int32) -> String
```
## Type Restrictions
## Generics
# References
- https://crystal-lang.org/reference/1.10/syntax_and_semantics/type_grammar.html
- https://crystal-lang.org/reference/1.10/syntax_and_semantics/type_restrictions.html
- https://crystal-lang.org/reference/1.10/syntax_and_semantics/generics.html