show = c => {
const n = arity(c)
if (n > 26) throw RangeError('arity('+c+')='+n+' is over 26')
const as = ["a","b","c","d","x","y","z","w",
"u","v","p","q","r","s","t",
"e","f","g","h","i","j","k",
"l","m","n","o"].slice(0,n)
const mkF = a => {
const f = x => mkF( a+"("+x+")" )
f.toString = () => a
return f
}
const fs = as.map( mkF )
const head = as.join(" => ")
const body = fs.reduce( (g,x) => g(x), c ).toString()
return ( (n>0)? head+" => ": "") + body
}