{
  "type": "File",
  "start": 0,
  "end": 381,
  "loc": {
    "start": {
      "line": 1,
      "column": 0
    },
    "end": {
      "line": 9,
      "column": 0
    }
  },
  "program": {
    "type": "Program",
    "start": 0,
    "end": 381,
    "loc": {
      "start": {
        "line": 1,
        "column": 0
      },
      "end": {
        "line": 9,
        "column": 0
      }
    },
    "sourceType": "module",
    "body": [
      {
        "type": "ExportNamedDeclaration",
        "start": 157,
        "end": 227,
        "loc": {
          "start": {
            "line": 5,
            "column": 0
          },
          "end": {
            "line": 5,
            "column": 70
          }
        },
        "declaration": null,
        "specifiers": [
          {
            "type": "ExportSpecifier",
            "start": 165,
            "end": 191,
            "loc": {
              "start": {
                "line": 5,
                "column": 8
              },
              "end": {
                "line": 5,
                "column": 34
              }
            },
            "local": {
              "type": "Identifier",
              "start": 165,
              "end": 172,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 8
                },
                "end": {
                  "line": 5,
                  "column": 15
                },
                "identifierName": "default"
              },
              "name": "default",
              "leadingComments": null
            },
            "exported": {
              "type": "Identifier",
              "start": 176,
              "end": 191,
              "loc": {
                "start": {
                  "line": 5,
                  "column": 19
                },
                "end": {
                  "line": 5,
                  "column": 34
                },
                "identifierName": "validateCreator"
              },
              "name": "validateCreator"
            },
            "leadingComments": null
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 198,
          "end": 226,
          "loc": {
            "start": {
              "line": 5,
              "column": 41
            },
            "end": {
              "line": 5,
              "column": 69
            }
          },
          "extra": {
            "rawValue": "./validate/validateCreator",
            "raw": "'./validate/validateCreator'"
          },
          "value": "./validate/validateCreator"
        },
        "leadingComments": [
          {
            "type": "CommentLine",
            "value": " TODO deeper validation logic, e.g. ensure that",
            "start": 0,
            "end": 49,
            "loc": {
              "start": {
                "line": 1,
                "column": 0
              },
              "end": {
                "line": 1,
                "column": 49
              }
            }
          },
          {
            "type": "CommentLine",
            "value": " - each key in bindings is also a key in reducers",
            "start": 51,
            "end": 102,
            "loc": {
              "start": {
                "line": 2,
                "column": 0
              },
              "end": {
                "line": 2,
                "column": 51
              }
            }
          },
          {
            "type": "CommentLine",
            "value": " - each value of bindings exists in actions etc",
            "start": 104,
            "end": 153,
            "loc": {
              "start": {
                "line": 3,
                "column": 0
              },
              "end": {
                "line": 3,
                "column": 49
              }
            }
          }
        ]
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 229,
        "end": 305,
        "loc": {
          "start": {
            "line": 6,
            "column": 0
          },
          "end": {
            "line": 6,
            "column": 76
          }
        },
        "declaration": null,
        "specifiers": [
          {
            "type": "ExportSpecifier",
            "start": 237,
            "end": 266,
            "loc": {
              "start": {
                "line": 6,
                "column": 8
              },
              "end": {
                "line": 6,
                "column": 37
              }
            },
            "local": {
              "type": "Identifier",
              "start": 237,
              "end": 244,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 8
                },
                "end": {
                  "line": 6,
                  "column": 15
                },
                "identifierName": "default"
              },
              "name": "default"
            },
            "exported": {
              "type": "Identifier",
              "start": 248,
              "end": 266,
              "loc": {
                "start": {
                  "line": 6,
                  "column": 19
                },
                "end": {
                  "line": 6,
                  "column": 37
                },
                "identifierName": "validateDefinition"
              },
              "name": "validateDefinition"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 273,
          "end": 304,
          "loc": {
            "start": {
              "line": 6,
              "column": 44
            },
            "end": {
              "line": 6,
              "column": 75
            }
          },
          "extra": {
            "rawValue": "./validate/validateDefinition",
            "raw": "'./validate/validateDefinition'"
          },
          "value": "./validate/validateDefinition"
        }
      },
      {
        "type": "ExportNamedDeclaration",
        "start": 307,
        "end": 377,
        "loc": {
          "start": {
            "line": 7,
            "column": 0
          },
          "end": {
            "line": 7,
            "column": 70
          }
        },
        "declaration": null,
        "specifiers": [
          {
            "type": "ExportSpecifier",
            "start": 315,
            "end": 341,
            "loc": {
              "start": {
                "line": 7,
                "column": 8
              },
              "end": {
                "line": 7,
                "column": 34
              }
            },
            "local": {
              "type": "Identifier",
              "start": 315,
              "end": 322,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 8
                },
                "end": {
                  "line": 7,
                  "column": 15
                },
                "identifierName": "default"
              },
              "name": "default"
            },
            "exported": {
              "type": "Identifier",
              "start": 326,
              "end": 341,
              "loc": {
                "start": {
                  "line": 7,
                  "column": 19
                },
                "end": {
                  "line": 7,
                  "column": 34
                },
                "identifierName": "validateHandler"
              },
              "name": "validateHandler"
            }
          }
        ],
        "source": {
          "type": "StringLiteral",
          "start": 348,
          "end": 376,
          "loc": {
            "start": {
              "line": 7,
              "column": 41
            },
            "end": {
              "line": 7,
              "column": 69
            }
          },
          "extra": {
            "rawValue": "./validate/validateHandler",
            "raw": "'./validate/validateHandler'"
          },
          "value": "./validate/validateHandler"
        }
      }
    ],
    "directives": []
  },
  "comments": [
    {
      "type": "CommentLine",
      "value": " TODO deeper validation logic, e.g. ensure that",
      "start": 0,
      "end": 49,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 49
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " - each key in bindings is also a key in reducers",
      "start": 51,
      "end": 102,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 51
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " - each value of bindings exists in actions etc",
      "start": 104,
      "end": 153,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 49
        }
      }
    }
  ],
  "tokens": [
    {
      "type": "CommentLine",
      "value": " TODO deeper validation logic, e.g. ensure that",
      "start": 0,
      "end": 49,
      "loc": {
        "start": {
          "line": 1,
          "column": 0
        },
        "end": {
          "line": 1,
          "column": 49
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " - each key in bindings is also a key in reducers",
      "start": 51,
      "end": 102,
      "loc": {
        "start": {
          "line": 2,
          "column": 0
        },
        "end": {
          "line": 2,
          "column": 51
        }
      }
    },
    {
      "type": "CommentLine",
      "value": " - each value of bindings exists in actions etc",
      "start": 104,
      "end": 153,
      "loc": {
        "start": {
          "line": 3,
          "column": 0
        },
        "end": {
          "line": 3,
          "column": 49
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 157,
      "end": 163,
      "loc": {
        "start": {
          "line": 5,
          "column": 0
        },
        "end": {
          "line": 5,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 164,
      "end": 165,
      "loc": {
        "start": {
          "line": 5,
          "column": 7
        },
        "end": {
          "line": 5,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 165,
      "end": 172,
      "loc": {
        "start": {
          "line": 5,
          "column": 8
        },
        "end": {
          "line": 5,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 173,
      "end": 175,
      "loc": {
        "start": {
          "line": 5,
          "column": 16
        },
        "end": {
          "line": 5,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "validateCreator",
      "start": 176,
      "end": 191,
      "loc": {
        "start": {
          "line": 5,
          "column": 19
        },
        "end": {
          "line": 5,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 191,
      "end": 192,
      "loc": {
        "start": {
          "line": 5,
          "column": 34
        },
        "end": {
          "line": 5,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 193,
      "end": 197,
      "loc": {
        "start": {
          "line": 5,
          "column": 36
        },
        "end": {
          "line": 5,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./validate/validateCreator",
      "start": 198,
      "end": 226,
      "loc": {
        "start": {
          "line": 5,
          "column": 41
        },
        "end": {
          "line": 5,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 226,
      "end": 227,
      "loc": {
        "start": {
          "line": 5,
          "column": 69
        },
        "end": {
          "line": 5,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 229,
      "end": 235,
      "loc": {
        "start": {
          "line": 6,
          "column": 0
        },
        "end": {
          "line": 6,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 236,
      "end": 237,
      "loc": {
        "start": {
          "line": 6,
          "column": 7
        },
        "end": {
          "line": 6,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 237,
      "end": 244,
      "loc": {
        "start": {
          "line": 6,
          "column": 8
        },
        "end": {
          "line": 6,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 245,
      "end": 247,
      "loc": {
        "start": {
          "line": 6,
          "column": 16
        },
        "end": {
          "line": 6,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "validateDefinition",
      "start": 248,
      "end": 266,
      "loc": {
        "start": {
          "line": 6,
          "column": 19
        },
        "end": {
          "line": 6,
          "column": 37
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 266,
      "end": 267,
      "loc": {
        "start": {
          "line": 6,
          "column": 37
        },
        "end": {
          "line": 6,
          "column": 38
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 268,
      "end": 272,
      "loc": {
        "start": {
          "line": 6,
          "column": 39
        },
        "end": {
          "line": 6,
          "column": 43
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./validate/validateDefinition",
      "start": 273,
      "end": 304,
      "loc": {
        "start": {
          "line": 6,
          "column": 44
        },
        "end": {
          "line": 6,
          "column": 75
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 304,
      "end": 305,
      "loc": {
        "start": {
          "line": 6,
          "column": 75
        },
        "end": {
          "line": 6,
          "column": 76
        }
      }
    },
    {
      "type": {
        "label": "export",
        "keyword": "export",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "export",
      "start": 307,
      "end": 313,
      "loc": {
        "start": {
          "line": 7,
          "column": 0
        },
        "end": {
          "line": 7,
          "column": 6
        }
      }
    },
    {
      "type": {
        "label": "{",
        "beforeExpr": true,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 314,
      "end": 315,
      "loc": {
        "start": {
          "line": 7,
          "column": 7
        },
        "end": {
          "line": 7,
          "column": 8
        }
      }
    },
    {
      "type": {
        "label": "default",
        "keyword": "default",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "default",
      "start": 315,
      "end": 322,
      "loc": {
        "start": {
          "line": 7,
          "column": 8
        },
        "end": {
          "line": 7,
          "column": 15
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "as",
      "start": 323,
      "end": 325,
      "loc": {
        "start": {
          "line": 7,
          "column": 16
        },
        "end": {
          "line": 7,
          "column": 18
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "validateHandler",
      "start": 326,
      "end": 341,
      "loc": {
        "start": {
          "line": 7,
          "column": 19
        },
        "end": {
          "line": 7,
          "column": 34
        }
      }
    },
    {
      "type": {
        "label": "}",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "start": 341,
      "end": 342,
      "loc": {
        "start": {
          "line": 7,
          "column": 34
        },
        "end": {
          "line": 7,
          "column": 35
        }
      }
    },
    {
      "type": {
        "label": "name",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null
      },
      "value": "from",
      "start": 343,
      "end": 347,
      "loc": {
        "start": {
          "line": 7,
          "column": 36
        },
        "end": {
          "line": 7,
          "column": 40
        }
      }
    },
    {
      "type": {
        "label": "string",
        "beforeExpr": false,
        "startsExpr": true,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "value": "./validate/validateHandler",
      "start": 348,
      "end": 376,
      "loc": {
        "start": {
          "line": 7,
          "column": 41
        },
        "end": {
          "line": 7,
          "column": 69
        }
      }
    },
    {
      "type": {
        "label": ";",
        "beforeExpr": true,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 376,
      "end": 377,
      "loc": {
        "start": {
          "line": 7,
          "column": 69
        },
        "end": {
          "line": 7,
          "column": 70
        }
      }
    },
    {
      "type": {
        "label": "eof",
        "beforeExpr": false,
        "startsExpr": false,
        "rightAssociative": false,
        "isLoop": false,
        "isAssign": false,
        "prefix": false,
        "postfix": false,
        "binop": null,
        "updateContext": null
      },
      "start": 381,
      "end": 381,
      "loc": {
        "start": {
          "line": 9,
          "column": 0
        },
        "end": {
          "line": 9,
          "column": 0
        }
      }
    }
  ]
}