ModelToAST is a type alias used to map a generic type T to a specific AST node type.
If T is a DotObjectModel, the type U is inferred and used to determine which AST node type to map to.
If U is 'Graph', the type is mapped to either a GraphASTNode or a DotASTNode.
If U is 'AttributeList', the type is mapped to an AttributeListASTNode.
If U is 'Edge', the type is mapped to an EdgeASTNode.
If U is 'Node', the type is mapped to a NodeASTNode.
If U is 'Subgraph', the type is mapped to a SubgraphASTNode.
If T is not a DotObjectModel, the type is mapped to never.
ModelToAST is a type alias used to map a generic type T to a specific AST node type.
If T is a DotObjectModel, the type U is inferred and used to determine which AST node type to map to.
If U is 'Graph', the type is mapped to either a GraphASTNode or a DotASTNode. If U is 'AttributeList', the type is mapped to an AttributeListASTNode. If U is 'Edge', the type is mapped to an EdgeASTNode. If U is 'Node', the type is mapped to a NodeASTNode. If U is 'Subgraph', the type is mapped to a SubgraphASTNode.
If T is not a DotObjectModel, the type is mapped to never.