fn cset [c t f]{ if $c { put $t } else { put $f } } fn mset [c t f]{ all (cset $c $t $f) } fn call [c t f @argv]{ var v = (cset $c $t $f) if (is (kind-of $v) fn) { $v $@argv } else { put $v } }