# blog

Vanessa McHale's blog (1)
• ## The !-modality Is a Comonad

The !-modality is a comonad. In particular, it is a functor; we can lift any function/procedure to work on perennial types with map, $$A \multimap B \vdash !A \multimap !B$$.

• ## Linting for Concatenative Programming

Concatenative languages lend themselves to rewriting because they do not bind variables and thus do not incur any confusion with renaming/scope (compositional rather than applicative).

• ## The Interesting Part of Monadic Effects

Monads for effects are familiar to the Haskell programmer; they were introduced by Wadler's "Monads for functional programming" and are the accepted way to work with side effects in a lazy language.

• ## Compiler Technologies behind Logics

As I wrote elsewhere, garbage collection - manual memory management correspond to intuitionistic logic - linear logic. So garbage collection is a technology with logical implications.

• ## Shoelace Iteration

Suppose we wish to compute successive differences. In J: