"a = a" в руби выглядит неочевидно с небайтоебской точки зрения, но хотя бы в целом логично ("a =" создает ссылку на неиспользуемый участок кучи, по дороге инициализируя его nil-ом, а потом присваивает ее самой себе), но в жс просто пиздос какой-то.
@mugiseyebrows блядь, понапридумали себе хуйни, пидорасы
# let a = a;;
Error: Unbound value a
# let rec a = a;;
Error: This kind of expression is not allowed as right-hand side of `let rec'