module T

def self.cast(value, type, checked: true)

Compared to `T.let`, `T.cast` is _trusted_ by static system.

exception at runtime if the value doesn't match the type.
an expression that the typechecker is unable to analyze. If `checked` is true, raises an
Tells the typechecker that `value` is of type `type`. Use this to get additional checking after
def self.cast(value, type, checked: true)
  return value unless checked
  Private::Casts.cast(value, type, cast_method: "T.cast")
end