Interesting approach to emulating sum types in Go: define an interface with a placeholder function on all of the relevant types! https://www.jerf.org/iri/post/2917
Includes an example with an AST type. You can even stop people extending your interface by making your placeholder private.
miniblog.
Related Posts
Caddy is really growing on me. It's nice having a web proxy that includes letsencrypt functionality without any additional configuration.
I've tended to use nginx with a separate letsencrypt setup for projects before, and it's much more awkward.
Today I learnt about Solargraph, an LSP for Ruby which includes an impressive amount of type inference and type checking! https://solargraph.org/guides/type-checking
Type signatures are parsed from doc comments, similar to JSDoc with TypeScript.
Microsoft is writing a PHP parser that handles error recovery well, and the internals docs are really accessible.
It includes a discussion of handling trivia and even some sample parsing code.