Basic AST

Obviously, but apart from that? We don't have e.g. a `List[MemberDecl]` or something that uses it, so it could be removed until we have a use case for it.