One PL nihilism is "all languages are the same." This is not so—general-purpose languages have converged on procedures, but languages that differ nontrivially are used in computing.
Universal ctags points the cursor to
line numbers rather than the actual definition (as language servers do). Vim
uses ex (:h Ex-mode) commands as destinations.
We want to generate call cursor(line,col) for each identifier.
An established problem in functional programming is the question of evaluation
order (see Hudak, §2.2).
Haskell offers seq; which allows the programmer to magically introduce
dependencies in evaluation order and thence subvert lazy evaluation.
Sometimes this is necessary; see the foldl foldl' example.
nm shows symbols defined in an executable. GHC includes library name in
symbols, so we can use this to inspect libraries that make it into the compiled
binary. GHC uses z-encoding so we pipe the output of nm into an ad-hoc invocation of sed, viz.
GHC embeds linker flags into the final ELF binary:
prev | next