my foo = either scalar or reference; foo[] foo() foo{} foo[](){}[]; # implicit -> and autovivify