Suppose we wrote this with keywords. I can't stomach a naked keyword so I'll put a colon on the front. We might write:
:function lax {
:object :tuple{her: ship dur: dore} {
:function cluy {
:produce :tuple{p: life q: gens r: acru}
:ifno lew.wod.dur :error
:unless (equals fak.ton r.i.lew.wod.dur) {
:record :tuple{%client-wrong-fake her}
:error
} :then {
:tuple {
p.p.q.i.lew.wod.dur
q.q.i.lew.wod.dur
(haul r.q.i.lew.wod.dur)
}
}
}
}
}
Is this better? Arguably, it's easier to learn. But I'm not sure I would regard it as better.
Also, for your convenience we've assigned CVC nonsense names to all the ASCII characters. Pasting from the source:
++ ace (just ' ')
++ bar (just '|')
++ bas (just '\\')
++ buc (just '$')
++ cab (just '_')
++ cen (just '%')
++ col (just ':')
++ com (just ',')
++ doq (just '"')
++ dot (just '.')
++ fas (just '/')
++ gal (just '<')
++ gar (just '>')
++ hax (just '#')
++ kel (just '{')
++ ker (just '}')
++ ket (just '^')
++ lus (just '+')
++ hep (just '-')
++ pel (just '(')
++ pam (just '&')
++ per (just ')')
++ pat (just '@')
++ sel (just '[')
++ sem (just ';')
++ ser (just ']')
++ sig (just '~')
++ soq (just '\'')
++ tar (just '*')
++ tec (just '`')
++ tis (just '=')
++ wut (just '?')
++ zap (just '!')
One of the problems with using these handy little glyphs in syntax (and an even worse problem with using Unicode glyphs in programming, btw) is that "semicolon" is not convenient to say. The length of the vocalization matters a lot to how you think about a symbol, even if you don't often say it.