You can define a method "=>" in Object as:That would allow you to write expressions like this:=> aBlock^ aBlock value: self7 => [ :x | x+3 ] => [ :x| x*3 ],��if you further define "=>" in Array as:=> aBlock^ aBlock valueWithArguments: selfyou are able to write your example:(([ :f :g | [ :x | f (g x) ] ]) [:x | x + 1] [:x | x - 1]) 5as:��5 => ({ [:x | x + 1]. ��[:x | x - 1]} => [ :f :g | [ :x | x => g =>f ] ]).It reads from left to��right where yours is the usual Arabic (right to left) favoured in functional style.��