Никто не задумывался, что означает конструкция raise => StandardError? Я имею в виду именно
=>
. Это же не Hash. Чисто специфический синтаксис самого языка?
Например, в gem contracts есть констркция Contract String, Integer => Or[Array, Time]. Там понятно, в метод Contract передаются аргументы в виде классов, где последний Hash. А вот с raise не совсем понятно.
В исходниках
https://github.com/ruby/ruby/blob/master/error.c тоже не совсем понятно (мне лично).