module Sing() local initialSize, what, where, bottles, action, ModuleApply; bottles := proc( n::integer, { lowercase::truefalse := false } ) option remember; if n < 0 then bottles(initialSize) elif n = 0 then if lowercase then StringTools:-LowerCase(procname(n)) else "No more bottles" fi elif n = 1 then "1 bottle" else "" || n || " bottles" fi end; action := proc( n::integer ) if