bracer
bracer copied to clipboard
Codify shared lenses
We need a coherent set of lenses/traversals that make it easy to access the common elements of an AST: names, positions, children, return types, etc. These should probably take the form of typeclasses, maybe even type families:
class HasName a where
name :: Lens' a Name