{
  "type": "File",
  "start":0,"end":110,"loc":{"start":{"line":1,"column":0},"end":{"line":12,"column":19}},
  "program": {
    "type": "Program",
    "start":0,"end":110,"loc":{"start":{"line":1,"column":0},"end":{"line":12,"column":19}},
    "sourceType": "module",
    "interpreter": null,
    "body": [
      {
        "type": "TypeAlias",
        "start":18,"end":60,"loc":{"start":{"line":5,"column":0},"end":{"line":8,"column":6}},
        "id": {
          "type": "Identifier",
          "start":23,"end":38,"loc":{"start":{"line":5,"column":5},"end":{"line":5,"column":20},"identifierName":"DirectionVector"},
          "name": "DirectionVector"
        },
        "typeParameters": null,
        "right": {
          "type": "UnionTypeAnnotation",
          "start":43,"end":59,"loc":{"start":{"line":6,"column":2},"end":{"line":8,"column":5}},
          "types": [
            {
              "type": "NumberLiteralTypeAnnotation",
              "start":45,"end":47,"loc":{"start":{"line":6,"column":4},"end":{"line":6,"column":6}},
              "extra": {
                "rawValue": -1,
                "raw": "-1"
              },
              "value": -1
            },
            {
              "type": "NumberLiteralTypeAnnotation",
              "start":52,"end":53,"loc":{"start":{"line":7,"column":4},"end":{"line":7,"column":5}},
              "extra": {
                "rawValue": 0,
                "raw": "0"
              },
              "value": 0
            },
            {
              "type": "NumberLiteralTypeAnnotation",
              "start":58,"end":59,"loc":{"start":{"line":8,"column":4},"end":{"line":8,"column":5}},
              "extra": {
                "rawValue": 1,
                "raw": "1"
              },
              "value": 1
            }
          ]
        },
        "leadingComments": [
          {
            "type": "CommentBlock",
            "value": "*\n * @flow\n ",
            "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":3}}
          }
        ]
      },
      {
        "type": "VariableDeclaration",
        "start":63,"end":90,"loc":{"start":{"line":11,"column":0},"end":{"line":11,"column":27}},
        "declarations": [
          {
            "type": "VariableDeclarator",
            "start":67,"end":89,"loc":{"start":{"line":11,"column":4},"end":{"line":11,"column":26}},
            "id": {
              "type": "Identifier",
              "start":67,"end":84,"loc":{"start":{"line":11,"column":4},"end":{"line":11,"column":21},"identifierName":"x"},
              "name": "x",
              "typeAnnotation": {
                "type": "TypeAnnotation",
                "start":68,"end":84,"loc":{"start":{"line":11,"column":5},"end":{"line":11,"column":21}},
                "typeAnnotation": {
                  "type": "GenericTypeAnnotation",
                  "start":69,"end":84,"loc":{"start":{"line":11,"column":6},"end":{"line":11,"column":21}},
                  "typeParameters": null,
                  "id": {
                    "type": "Identifier",
                    "start":69,"end":84,"loc":{"start":{"line":11,"column":6},"end":{"line":11,"column":21},"identifierName":"DirectionVector"},
                    "name": "DirectionVector"
                  }
                }
              }
            },
            "init": {
              "type": "UnaryExpression",
              "start":87,"end":89,"loc":{"start":{"line":11,"column":24},"end":{"line":11,"column":26}},
              "operator": "-",
              "prefix": true,
              "argument": {
                "type": "NumericLiteral",
                "start":88,"end":89,"loc":{"start":{"line":11,"column":25},"end":{"line":11,"column":26}},
                "extra": {
                  "rawValue": 1,
                  "raw": "1"
                },
                "value": 1
              }
            }
          }
        ],
        "kind": "var"
      },
      {
        "type": "ExpressionStatement",
        "start":91,"end":110,"loc":{"start":{"line":12,"column":0},"end":{"line":12,"column":19}},
        "expression": {
          "type": "CallExpression",
          "start":91,"end":109,"loc":{"start":{"line":12,"column":0},"end":{"line":12,"column":18}},
          "callee": {
            "type": "MemberExpression",
            "start":91,"end":102,"loc":{"start":{"line":12,"column":0},"end":{"line":12,"column":11}},
            "object": {
              "type": "Identifier",
              "start":91,"end":98,"loc":{"start":{"line":12,"column":0},"end":{"line":12,"column":7},"identifierName":"console"},
              "name": "console"
            },
            "property": {
              "type": "Identifier",
              "start":99,"end":102,"loc":{"start":{"line":12,"column":8},"end":{"line":12,"column":11},"identifierName":"log"},
              "name": "log"
            },
            "computed": false
          },
          "arguments": [
            {
              "type": "StringLiteral",
              "start":103,"end":108,"loc":{"start":{"line":12,"column":12},"end":{"line":12,"column":17}},
              "extra": {
                "rawValue": "foo",
                "raw": "'foo'"
              },
              "value": "foo"
            }
          ]
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentBlock",
      "value": "*\n * @flow\n ",
      "start":0,"end":16,"loc":{"start":{"line":1,"column":0},"end":{"line":3,"column":3}}
    }
  ]
}