ensure that AST nodes can't be copied
remove interpreter code
send output to specific stream
use .at() to trigger runtime exception on bounds
add infrastructure for types, scopes, variable declarations, function linkage