{
  "type": "File",
  "start":0,"end":149,"loc":{"start":{"line":1,"column":0},"end":{"line":7,"column":29}},
  "program": {
    "type": "Program",
    "start":0,"end":149,"loc":{"start":{"line":1,"column":0},"end":{"line":7,"column":29}},
    "sourceType": "module",
    "interpreter": null,
    "body": [
      {
        "type": "FunctionDeclaration",
        "start":0,"end":46,"loc":{"start":{"line":1,"column":0},"end":{"line":1,"column":46}},
        "id": {
          "type": "Identifier",
          "start":9,"end":12,"loc":{"start":{"line":1,"column":9},"end":{"line":1,"column":12},"identifierName":"foo"},
          "name": "foo"
        },
        "generator": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start":14,"end":27,"loc":{"start":{"line":1,"column":14},"end":{"line":1,"column":27},"identifierName":"this"},
            "name": "this",
            "typeAnnotation": {
              "type": "TypeAnnotation",
              "start":19,"end":27,"loc":{"start":{"line":1,"column":19},"end":{"line":1,"column":27}},
              "typeAnnotation": {
                "type": "NumberTypeAnnotation",
                "start":21,"end":27,"loc":{"start":{"line":1,"column":21},"end":{"line":1,"column":27}}
              }
            }
          },
          {
            "type": "Identifier",
            "start":29,"end":39,"loc":{"start":{"line":1,"column":29},"end":{"line":1,"column":39},"identifierName":"a"},
            "name": "a",
            "typeAnnotation": {
              "type": "TypeAnnotation",
              "start":31,"end":39,"loc":{"start":{"line":1,"column":31},"end":{"line":1,"column":39}},
              "typeAnnotation": {
                "type": "StringTypeAnnotation",
                "start":33,"end":39,"loc":{"start":{"line":1,"column":33},"end":{"line":1,"column":39}}
              }
            }
          },
          {
            "type": "Identifier",
            "start":41,"end":42,"loc":{"start":{"line":1,"column":41},"end":{"line":1,"column":42},"identifierName":"b"},
            "name": "b"
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start":44,"end":46,"loc":{"start":{"line":1,"column":44},"end":{"line":1,"column":46}},
          "body": [],
          "directives": []
        }
      },
      {
        "type": "FunctionDeclaration",
        "start":48,"end":79,"loc":{"start":{"line":3,"column":0},"end":{"line":3,"column":31}},
        "id": {
          "type": "Identifier",
          "start":57,"end":60,"loc":{"start":{"line":3,"column":9},"end":{"line":3,"column":12},"identifierName":"bar"},
          "name": "bar"
        },
        "generator": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start":62,"end":75,"loc":{"start":{"line":3,"column":14},"end":{"line":3,"column":27},"identifierName":"this"},
            "name": "this",
            "typeAnnotation": {
              "type": "TypeAnnotation",
              "start":67,"end":75,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":27}},
              "typeAnnotation": {
                "type": "NumberTypeAnnotation",
                "start":69,"end":75,"loc":{"start":{"line":3,"column":21},"end":{"line":3,"column":27}}
              }
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start":77,"end":79,"loc":{"start":{"line":3,"column":29},"end":{"line":3,"column":31}},
          "body": [],
          "directives": []
        }
      },
      {
        "type": "FunctionDeclaration",
        "start":81,"end":118,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":37}},
        "id": {
          "type": "Identifier",
          "start":90,"end":93,"loc":{"start":{"line":5,"column":9},"end":{"line":5,"column":12},"identifierName":"baz"},
          "name": "baz"
        },
        "generator": false,
        "async": false,
        "params": [
          {
            "type": "Identifier",
            "start":95,"end":108,"loc":{"start":{"line":5,"column":14},"end":{"line":5,"column":27},"identifierName":"this"},
            "name": "this",
            "typeAnnotation": {
              "type": "TypeAnnotation",
              "start":100,"end":108,"loc":{"start":{"line":5,"column":19},"end":{"line":5,"column":27}},
              "typeAnnotation": {
                "type": "NumberTypeAnnotation",
                "start":102,"end":108,"loc":{"start":{"line":5,"column":21},"end":{"line":5,"column":27}}
              }
            }
          },
          {
            "type": "RestElement",
            "start":110,"end":114,"loc":{"start":{"line":5,"column":29},"end":{"line":5,"column":33}},
            "argument": {
              "type": "Identifier",
              "start":113,"end":114,"loc":{"start":{"line":5,"column":32},"end":{"line":5,"column":33},"identifierName":"a"},
              "name": "a"
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start":116,"end":118,"loc":{"start":{"line":5,"column":35},"end":{"line":5,"column":37}},
          "body": [],
          "directives": []
        }
      },
      {
        "type": "FunctionDeclaration",
        "start":120,"end":149,"loc":{"start":{"line":7,"column":0},"end":{"line":7,"column":29}},
        "id": {
          "type": "Identifier",
          "start":129,"end":132,"loc":{"start":{"line":7,"column":9},"end":{"line":7,"column":12},"identifierName":"qux"},
          "name": "qux"
        },
        "generator": false,
        "async": false,
        "typeParameters": {
          "type": "TypeParameterDeclaration",
          "start":132,"end":135,"loc":{"start":{"line":7,"column":12},"end":{"line":7,"column":15}},
          "params": [
            {
              "type": "TypeParameter",
              "start":133,"end":134,"loc":{"start":{"line":7,"column":13},"end":{"line":7,"column":14}},
              "name": "T",
              "variance": null
            }
          ]
        },
        "params": [
          {
            "type": "Identifier",
            "start":137,"end":145,"loc":{"start":{"line":7,"column":17},"end":{"line":7,"column":25},"identifierName":"this"},
            "name": "this",
            "typeAnnotation": {
              "type": "TypeAnnotation",
              "start":142,"end":145,"loc":{"start":{"line":7,"column":22},"end":{"line":7,"column":25}},
              "typeAnnotation": {
                "type": "GenericTypeAnnotation",
                "start":144,"end":145,"loc":{"start":{"line":7,"column":24},"end":{"line":7,"column":25}},
                "typeParameters": null,
                "id": {
                  "type": "Identifier",
                  "start":144,"end":145,"loc":{"start":{"line":7,"column":24},"end":{"line":7,"column":25},"identifierName":"T"},
                  "name": "T"
                }
              }
            }
          }
        ],
        "body": {
          "type": "BlockStatement",
          "start":147,"end":149,"loc":{"start":{"line":7,"column":27},"end":{"line":7,"column":29}},
          "body": [],
          "directives": []
        }
      }
    ],
    "directives": []
  }
}