Une MAJ de sécurité est nécessaire sur notre version actuelle. Elle sera effectuée lundi 02/08 entre 12h30 et 13h. L'interruption de service devrait durer quelques minutes (probablement moins de 5 minutes).

Commit 15cfb759 authored by POTTIER Francois's avatar POTTIER Francois
Browse files

Add Andromeda's grammar to the test suite.

parent 9b630010
Grammar has 135 nonterminal symbols, among which 2 start symbols.
Grammar has 78 terminal symbols.
Grammar has 343 productions.
nullable(when_guard) = true
nullable(typed_binder) = false
nullable(ty_term_) = false
nullable(ty_term) = false
nullable(tt_name) = false
nullable(tt_maybe_typed_binder) = false
nullable(top_term_) = false
nullable(top_term) = false
nullable(top_operation_cases) = true
nullable(top_operation_case) = false
nullable(top_command_) = false
nullable(top_command) = false
nullable(term_) = false
nullable(term) = false
nullable(substitution_term_) = false
nullable(substitution_term) = false
nullable(substitution) = false
nullable(simple_term_) = false
nullable(simple_pattern_) = false
nullable(simple_mlty_) = false
nullable(simple_mlty) = false
nullable(separated_nonempty_list(STAR,app_mlty)) = false
nullable(separated_nonempty_list(SEMI,pattern)) = false
nullable(separated_nonempty_list(COMMA,term)) = false
nullable(separated_nonempty_list(COMMA,pattern)) = false
nullable(separated_nonempty_list(COMMA,module_name)) = false
nullable(separated_nonempty_list(BAR,top_operation_case)) = false
nullable(separated_nonempty_list(BAR,mlty_constructor)) = false
nullable(separated_nonempty_list(BAR,match_case)) = false
nullable(separated_nonempty_list(BAR,handler_case)) = false
nullable(separated_nonempty_list(ARROW,prod_mlty)) = false
nullable(separated_nonempty_list(AND,recursive_clause)) = false
nullable(separated_nonempty_list(AND,mlty_def)) = false
nullable(separated_nonempty_list(AND,let_clause)) = false
nullable(rule_) = false
nullable(recursive_clause) = false
nullable(prod_mlty_) = false
nullable(prod_mlty) = false
nullable(premise_) = false
nullable(premise) = false
nullable(prefix_term_) = false
nullable(prefix_term) = false
nullable(prefix_pattern_) = false
nullable(prefix_pattern) = false
nullable(pattern_) = false
nullable(pattern) = false
nullable(option(SEMISEMI)) = true
nullable(option(SEMI)) = true
nullable(opt_name(tt_name)) = false
nullable(opt_name(ml_name)) = false
nullable(op_name) = false
nullable(op_mlsig) = false
nullable(nonempty_list(substitution_term)) = false
nullable(nonempty_list(simple_mlty)) = false
nullable(nonempty_list(premise)) = false
nullable(nonempty_list(prefix_pattern)) = false
nullable(nonempty_list(opt_name(tt_name))) = false
nullable(nonempty_list(opt_name(ml_name))) = false
nullable(nonempty_list(ml_arg)) = false
nullable(nonempty_list(maybe_typed_binder)) = false
nullable(nonempty_list(anon_name(tt_name))) = false
nullable(module_path) = false
nullable(module_name) = false
nullable(mlty_defs) = false
nullable(mlty_def_body) = false
nullable(mlty_def) = false
nullable(mlty_constructor) = false
nullable(mlty_) = false
nullable(mlty) = false
nullable(ml_schema_) = false
nullable(ml_schema) = false
nullable(ml_name) = false
nullable(ml_module_top) = true
nullable(ml_module) = true
nullable(ml_arg) = false
nullable(maybe_typed_binder) = false
nullable(match_cases) = true
nullable(match_case) = false
nullable(mark_location(ty_term_)) = false
nullable(mark_location(top_term_)) = false
nullable(mark_location(top_command_)) = false
nullable(mark_location(term_)) = false
nullable(mark_location(substitution_term_)) = false
nullable(mark_location(simple_mlty_)) = false
nullable(mark_location(prod_mlty_)) = false
nullable(mark_location(premise_)) = false
nullable(mark_location(prefix_term_)) = false
nullable(mark_location(prefix_pattern_)) = false
nullable(mark_location(pattern_)) = false
nullable(mark_location(mlty_)) = false
nullable(mark_location(ml_schema_)) = false
nullable(mark_location(let_pattern_)) = false
nullable(mark_location(binop_term_)) = false
nullable(mark_location(binop_pattern_)) = false
nullable(mark_location(app_term_)) = false
nullable(mark_location(app_mlty_)) = false
nullable(loption(separated_nonempty_list(SEMI,pattern))) = true
nullable(loption(separated_nonempty_list(COMMA,term))) = true
nullable(loption(separated_nonempty_list(COMMA,pattern))) = true
nullable(loption(separated_nonempty_list(BAR,top_operation_case))) = true
nullable(loption(separated_nonempty_list(BAR,mlty_constructor))) = true
nullable(loption(separated_nonempty_list(BAR,match_case))) = true
nullable(loption(separated_nonempty_list(BAR,handler_case))) = true
nullable(local_context) = true
nullable(list_contents) = false
nullable(list(typed_binder)) = true
nullable(list(substitution_term)) = true
nullable(list(premise)) = true
nullable(list(prefix_pattern)) = true
nullable(list(opt_name(ml_name))) = true
nullable(list(ml_arg)) = true
nullable(let_pattern_) = false
nullable(let_pattern) = false
nullable(let_clause) = false
nullable(let_annotation) = true
nullable(handler_checking) = true
nullable(handler_cases) = true
nullable(handler_case) = false
nullable(file) = false
nullable(exc_name) = false
nullable(equality_premise_name) = true
nullable(constr_name) = false
nullable(commandline) = false
nullable(binop_term_) = false
nullable(binop_term) = false
nullable(binop_pattern_) = false
nullable(binop_pattern) = false
nullable(app_term_) = false
nullable(app_term) = false
nullable(app_pattern_) = false
nullable(app_mlty_) = false
nullable(app_mlty) = false
nullable(any_name) = false
nullable(anon_name(tt_name)) = false
nullable(abstraction) = false
first(when_guard) = WHEN
first(typed_binder) = LBRACE
first(ty_term_) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK LBRACE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(ty_term) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK LBRACE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(tt_name) = NAME LPAREN
first(tt_maybe_typed_binder) = LBRACE
first(top_term_) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(top_term) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(top_operation_cases) = OPERATION BAR
first(top_operation_case) = OPERATION
first(top_command_) = WITH VERBOSITY RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION
first(top_command) = WITH VERBOSITY RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION
first(term_) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(term) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(substitution_term_) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(substitution_term) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(substitution) = LBRACE
first(simple_term_) = QUOTED_STRING NAME LPAREN LBRACK
first(simple_pattern_) = UNDERSCORE QUOTED_STRING QQMARK NAME LPAREN LBRACK
first(simple_mlty_) = UNDERSCORE NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(simple_mlty) = UNDERSCORE NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(separated_nonempty_list(STAR,app_mlty)) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(separated_nonempty_list(SEMI,pattern)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(separated_nonempty_list(COMMA,term)) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(separated_nonempty_list(COMMA,pattern)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(separated_nonempty_list(COMMA,module_name)) = NAME
first(separated_nonempty_list(BAR,top_operation_case)) = OPERATION
first(separated_nonempty_list(BAR,mlty_constructor)) = NAME LPAREN
first(separated_nonempty_list(BAR,match_case)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(separated_nonempty_list(BAR,handler_case)) = VAL RAISE NAME
first(separated_nonempty_list(ARROW,prod_mlty)) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(separated_nonempty_list(AND,recursive_clause)) = NAME LPAREN
first(separated_nonempty_list(AND,mlty_def)) = NAME LPAREN
first(separated_nonempty_list(AND,let_clause)) = UNDERSCORE NAME LPAREN LBRACK
first(rule_) = NAME LPAREN
first(recursive_clause) = NAME LPAREN
first(prod_mlty_) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(prod_mlty) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(premise_) = LPAREN
first(premise) = LPAREN
first(prefix_term_) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(prefix_term) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(prefix_pattern_) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(prefix_pattern) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(pattern_) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(pattern) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(option(SEMISEMI)) = SEMISEMI
first(option(SEMI)) = SEMI
first(opt_name(tt_name)) = UNDERSCORE NAME LPAREN
first(opt_name(ml_name)) = UNDERSCORE NAME LPAREN
first(op_name) = NAME
first(op_mlsig) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(nonempty_list(substitution_term)) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(nonempty_list(simple_mlty)) = UNDERSCORE NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(nonempty_list(premise)) = LPAREN
first(nonempty_list(prefix_pattern)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(nonempty_list(opt_name(tt_name))) = UNDERSCORE NAME LPAREN
first(nonempty_list(opt_name(ml_name))) = UNDERSCORE NAME LPAREN
first(nonempty_list(ml_arg)) = NAME LPAREN
first(nonempty_list(maybe_typed_binder)) = LBRACE
first(nonempty_list(anon_name(tt_name))) = UNDERSCORE NAME LPAREN
first(module_path) = NAME
first(module_name) = NAME
first(mlty_defs) = NAME LPAREN
first(mlty_def_body) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN BAR
first(mlty_def) = NAME LPAREN
first(mlty_constructor) = NAME LPAREN
first(mlty_) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(mlty) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(ml_schema_) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLFORALL MLDERIVATION MLBOUNDARY LPAREN
first(ml_schema) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLFORALL MLDERIVATION MLBOUNDARY LPAREN
first(ml_name) = NAME LPAREN
first(ml_module_top) = WITH VERBOSITY RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION
first(ml_module) = WITH VERBOSITY TRY RULE REQUIRE REF RAISE QUOTED_STRING QQMARK PREFIXOP OPERATION OPEN OCCURS NATURAL NAME MODULE MLTYPE MATCH LPAREN LET LBRACK LBRACE INCLUDE HANDLER FUN FRESH EXTERNAL EXCEPTION DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(ml_arg) = NAME LPAREN
first(maybe_typed_binder) = LBRACE
first(match_cases) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE BAR
first(match_case) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(mark_location(ty_term_)) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK LBRACE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(mark_location(top_term_)) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(mark_location(top_command_)) = WITH VERBOSITY RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION
first(mark_location(term_)) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(mark_location(substitution_term_)) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(mark_location(simple_mlty_)) = UNDERSCORE NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(mark_location(prod_mlty_)) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(mark_location(premise_)) = LPAREN
first(mark_location(prefix_term_)) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(mark_location(prefix_pattern_)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(mark_location(pattern_)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(mark_location(mlty_)) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(mark_location(ml_schema_)) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLFORALL MLDERIVATION MLBOUNDARY LPAREN
first(mark_location(let_pattern_)) = LPAREN LBRACK
first(mark_location(binop_term_)) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(mark_location(binop_pattern_)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(mark_location(app_term_)) = REF RAISE QUOTED_STRING PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(mark_location(app_mlty_)) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(loption(separated_nonempty_list(SEMI,pattern))) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(loption(separated_nonempty_list(COMMA,term))) = WITH TRY REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME MATCH LPAREN LET LBRACK LBRACE HANDLER FUN FRESH DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(loption(separated_nonempty_list(COMMA,pattern))) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(loption(separated_nonempty_list(BAR,top_operation_case))) = OPERATION
first(loption(separated_nonempty_list(BAR,mlty_constructor))) = NAME LPAREN
first(loption(separated_nonempty_list(BAR,match_case))) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
first(loption(separated_nonempty_list(BAR,handler_case))) = VAL RAISE NAME
first(local_context) = LBRACE
first(list_contents) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(list(typed_binder)) = LBRACE
first(list(substitution_term)) = REF QUOTED_STRING PREFIXOP NATURAL NAME LPAREN LBRACK BANG
first(list(premise)) = LPAREN
first(list(prefix_pattern)) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(list(opt_name(ml_name))) = UNDERSCORE NAME LPAREN
first(list(ml_arg)) = NAME LPAREN
first(let_pattern_) = LPAREN LBRACK
first(let_pattern) = LPAREN LBRACK
first(let_clause) = UNDERSCORE NAME LPAREN LBRACK
first(let_annotation) = COLONGT
first(handler_checking) = COLON
first(handler_cases) = VAL RAISE NAME BAR
first(handler_case) = VAL RAISE NAME
first(file) = WITH VERBOSITY TRY RULE REQUIRE REF RAISE QUOTED_STRING QQMARK PREFIXOP OPERATION OPEN OCCURS NATURAL NAME MODULE MLTYPE MATCH LPAREN LET LBRACK LBRACE INCLUDE HANDLER FUN FRESH EXTERNAL EXCEPTION EOF DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(exc_name) = NAME
first(equality_premise_name) = BY
first(constr_name) = NAME LPAREN
first(commandline) = WITH VERBOSITY TRY RULE REQUIRE REF RAISE QUOTED_STRING QQMARK PREFIXOP OPERATION OPEN OCCURS NATURAL NAME MODULE MLTYPE MATCH LPAREN LET LBRACK LBRACE INCLUDE HANDLER FUN FRESH EXTERNAL EXCEPTION DERIVE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(binop_term_) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(binop_term) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(binop_pattern_) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(binop_pattern) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(app_term_) = REF RAISE QUOTED_STRING PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(app_term) = REF RAISE QUOTED_STRING PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
first(app_pattern_) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK
first(app_mlty_) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(app_mlty) = UNDERSCORE REF NAME MLUNIT MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN
first(any_name) = NAME LPAREN
first(anon_name(tt_name)) = UNDERSCORE NAME LPAREN
first(abstraction) = LBRACE
minimal(when_guard) = (* 0 *)
minimal(typed_binder) = (* 5 *) LBRACE NAME COLON NAME RBRACE
minimal(ty_term_) = (* 1 *) NAME
minimal(ty_term) = (* 1 *) NAME
minimal(tt_name) = (* 1 *) NAME
minimal(tt_maybe_typed_binder) = (* 3 *) LBRACE NAME RBRACE
minimal(top_term_) = (* 1 *) NAME
minimal(top_term) = (* 1 *) NAME
minimal(top_operation_cases) = (* 0 *)
minimal(top_operation_case) = (* 4 *) OPERATION NAME ARROW NAME
minimal(top_command_) = (* 2 *) REQUIRE NAME
minimal(top_command) = (* 2 *) REQUIRE NAME
minimal(term_) = (* 1 *) NAME
minimal(term) = (* 1 *) NAME
minimal(substitution_term_) = (* 1 *) NAME
minimal(substitution_term) = (* 1 *) NAME
minimal(substitution) = (* 3 *) LBRACE NAME RBRACE
minimal(simple_term_) = (* 1 *) NAME
minimal(simple_pattern_) = (* 1 *) UNDERSCORE
minimal(simple_mlty_) = (* 1 *) NAME
minimal(simple_mlty) = (* 1 *) NAME
minimal(separated_nonempty_list(STAR,app_mlty)) = (* 1 *) NAME
minimal(separated_nonempty_list(SEMI,pattern)) = (* 1 *) UNDERSCORE
minimal(separated_nonempty_list(COMMA,term)) = (* 1 *) NAME
minimal(separated_nonempty_list(COMMA,pattern)) = (* 1 *) UNDERSCORE
minimal(separated_nonempty_list(COMMA,module_name)) = (* 1 *) NAME
minimal(separated_nonempty_list(BAR,top_operation_case)) = (* 4 *) OPERATION NAME ARROW NAME
minimal(separated_nonempty_list(BAR,mlty_constructor)) = (* 1 *) NAME
minimal(separated_nonempty_list(BAR,match_case)) = (* 3 *) UNDERSCORE ARROW NAME
minimal(separated_nonempty_list(BAR,handler_case)) = (* 3 *) NAME ARROW NAME
minimal(separated_nonempty_list(ARROW,prod_mlty)) = (* 1 *) NAME
minimal(separated_nonempty_list(AND,recursive_clause)) = (* 4 *) NAME NAME EQ NAME
minimal(separated_nonempty_list(AND,mlty_def)) = (* 3 *) NAME EQ NAME
minimal(separated_nonempty_list(AND,let_clause)) = (* 3 *) NAME EQ NAME
minimal(rule_) = (* 2 *) NAME TYPE
minimal(recursive_clause) = (* 4 *) NAME NAME EQ NAME
minimal(prod_mlty_) = (* 1 *) NAME
minimal(prod_mlty) = (* 1 *) NAME
minimal(premise_) = (* 4 *) LPAREN NAME TYPE RPAREN
minimal(premise) = (* 4 *) LPAREN NAME TYPE RPAREN
minimal(prefix_term_) = (* 1 *) NAME
minimal(prefix_term) = (* 1 *) NAME
minimal(prefix_pattern_) = (* 1 *) UNDERSCORE
minimal(prefix_pattern) = (* 1 *) UNDERSCORE
minimal(pattern_) = (* 1 *) UNDERSCORE
minimal(pattern) = (* 1 *) UNDERSCORE
minimal(option(SEMISEMI)) = (* 0 *)
minimal(option(SEMI)) = (* 0 *)
minimal(opt_name(tt_name)) = (* 1 *) NAME
minimal(opt_name(ml_name)) = (* 1 *) NAME
minimal(op_name) = (* 1 *) NAME
minimal(op_mlsig) = (* 1 *) NAME
minimal(nonempty_list(substitution_term)) = (* 1 *) NAME
minimal(nonempty_list(simple_mlty)) = (* 1 *) NAME
minimal(nonempty_list(premise)) = (* 4 *) LPAREN NAME TYPE RPAREN
minimal(nonempty_list(prefix_pattern)) = (* 1 *) UNDERSCORE
minimal(nonempty_list(opt_name(tt_name))) = (* 1 *) NAME
minimal(nonempty_list(opt_name(ml_name))) = (* 1 *) NAME
minimal(nonempty_list(ml_arg)) = (* 1 *) NAME
minimal(nonempty_list(maybe_typed_binder)) = (* 3 *) LBRACE NAME RBRACE
minimal(nonempty_list(anon_name(tt_name))) = (* 1 *) NAME
minimal(module_path) = (* 1 *) NAME
minimal(module_name) = (* 1 *) NAME
minimal(mlty_defs) = (* 3 *) NAME EQ NAME
minimal(mlty_def_body) = (* 1 *) NAME
minimal(mlty_def) = (* 3 *) NAME EQ NAME
minimal(mlty_constructor) = (* 1 *) NAME
minimal(mlty_) = (* 1 *) NAME
minimal(mlty) = (* 1 *) NAME
minimal(ml_schema_) = (* 1 *) NAME
minimal(ml_schema) = (* 1 *) NAME
minimal(ml_name) = (* 1 *) NAME
minimal(ml_module_top) = (* 0 *)
minimal(ml_module) = (* 0 *)
minimal(ml_arg) = (* 1 *) NAME
minimal(maybe_typed_binder) = (* 3 *) LBRACE NAME RBRACE
minimal(match_cases) = (* 0 *)
minimal(match_case) = (* 3 *) UNDERSCORE ARROW NAME
minimal(mark_location(ty_term_)) = (* 1 *) NAME
minimal(mark_location(top_term_)) = (* 1 *) NAME
minimal(mark_location(top_command_)) = (* 2 *) REQUIRE NAME
minimal(mark_location(term_)) = (* 1 *) NAME
minimal(mark_location(substitution_term_)) = (* 1 *) NAME
minimal(mark_location(simple_mlty_)) = (* 1 *) NAME
minimal(mark_location(prod_mlty_)) = (* 1 *) NAME
minimal(mark_location(premise_)) = (* 4 *) LPAREN NAME TYPE RPAREN
minimal(mark_location(prefix_term_)) = (* 1 *) NAME
minimal(mark_location(prefix_pattern_)) = (* 1 *) UNDERSCORE
minimal(mark_location(pattern_)) = (* 1 *) UNDERSCORE
minimal(mark_location(mlty_)) = (* 1 *) NAME
minimal(mark_location(ml_schema_)) = (* 1 *) NAME
minimal(mark_location(let_pattern_)) = (* 2 *) LPAREN RPAREN
minimal(mark_location(binop_term_)) = (* 1 *) NAME
minimal(mark_location(binop_pattern_)) = (* 1 *) UNDERSCORE
minimal(mark_location(app_term_)) = (* 1 *) NAME
minimal(mark_location(app_mlty_)) = (* 1 *) NAME
minimal(loption(separated_nonempty_list(SEMI,pattern))) = (* 0 *)
minimal(loption(separated_nonempty_list(COMMA,term))) = (* 0 *)
minimal(loption(separated_nonempty_list(COMMA,pattern))) = (* 0 *)
minimal(loption(separated_nonempty_list(BAR,top_operation_case))) = (* 0 *)
minimal(loption(separated_nonempty_list(BAR,mlty_constructor))) = (* 0 *)
minimal(loption(separated_nonempty_list(BAR,match_case))) = (* 0 *)
minimal(loption(separated_nonempty_list(BAR,handler_case))) = (* 0 *)
minimal(local_context) = (* 0 *)
minimal(list_contents) = (* 1 *) NAME
minimal(list(typed_binder)) = (* 0 *)
minimal(list(substitution_term)) = (* 0 *)
minimal(list(premise)) = (* 0 *)
minimal(list(prefix_pattern)) = (* 0 *)
minimal(list(opt_name(ml_name))) = (* 0 *)
minimal(list(ml_arg)) = (* 0 *)
minimal(let_pattern_) = (* 2 *) LPAREN RPAREN
minimal(let_pattern) = (* 2 *) LPAREN RPAREN
minimal(let_clause) = (* 3 *) NAME EQ NAME
minimal(let_annotation) = (* 0 *)
minimal(handler_checking) = (* 0 *)
minimal(handler_cases) = (* 0 *)
minimal(handler_case) = (* 3 *) NAME ARROW NAME
minimal(file) = (* 1 *) EOF
minimal(exc_name) = (* 1 *) NAME
minimal(equality_premise_name) = (* 0 *)
minimal(constr_name) = (* 1 *) NAME
minimal(commandline) = (* 2 *) NAME EOF
minimal(binop_term_) = (* 1 *) NAME
minimal(binop_term) = (* 1 *) NAME
minimal(binop_pattern_) = (* 1 *) UNDERSCORE
minimal(binop_pattern) = (* 1 *) UNDERSCORE
minimal(app_term_) = (* 1 *) NAME
minimal(app_term) = (* 1 *) NAME
minimal(app_pattern_) = (* 1 *) UNDERSCORE
minimal(app_mlty_) = (* 1 *) NAME
minimal(app_mlty) = (* 1 *) NAME
minimal(any_name) = (* 1 *) NAME
minimal(anon_name(tt_name)) = (* 1 *) NAME
minimal(abstraction) = (* 3 *) LBRACE NAME RBRACE
follow(when_guard) = ARROW
follow(typed_binder) = UNDERSCORE REF RAISE QUOTED_STRING PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK LBRACE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
follow(ty_term_) = WITH VERBOSITY TRY SEMISEMI RULE RPAREN REQUIRE RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END COMMA COLONGT BY BAR AND
follow(ty_term) = WITH VERBOSITY TRY SEMISEMI RULE RPAREN REQUIRE RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END COMMA COLONGT BY BAR AND
follow(tt_name) = WITH VERBOSITY UNDERSCORE UATOM TYPE TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(tt_maybe_typed_binder) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK LBRACE
follow(top_term_) = SEMISEMI EOF END
follow(top_term) = SEMISEMI EOF END
follow(top_operation_cases) = END
follow(top_operation_case) = END BAR
follow(top_command_) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(top_command) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(term_) = WITH VERBOSITY TRY SEMISEMI RULE RPAREN REQUIRE RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END COMMA COLONGT BY BAR AND
follow(term) = WITH VERBOSITY TRY SEMISEMI RULE RPAREN REQUIRE RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END COMMA COLONGT BY BAR AND
follow(substitution_term_) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(substitution_term) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(substitution) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(simple_term_) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(simple_pattern_) = WHEN UNDERSCORE UATOM TYPE STAR SEMI RPAREN RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(simple_mlty_) = WITH WHEN VERBOSITY UNDERSCORE STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN NAME MODULE MLUNIT MLTYPE MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(simple_mlty) = WITH WHEN VERBOSITY UNDERSCORE STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN NAME MODULE MLUNIT MLTYPE MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(separated_nonempty_list(STAR,app_mlty)) = WITH WHEN VERBOSITY SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(separated_nonempty_list(SEMI,pattern)) = RBRACK
follow(separated_nonempty_list(COMMA,term)) = RPAREN RBRACE
follow(separated_nonempty_list(COMMA,pattern)) = RPAREN
follow(separated_nonempty_list(COMMA,module_name)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(separated_nonempty_list(BAR,top_operation_case)) = END
follow(separated_nonempty_list(BAR,mlty_constructor)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END AND
follow(separated_nonempty_list(BAR,match_case)) = END
follow(separated_nonempty_list(BAR,handler_case)) = END
follow(separated_nonempty_list(ARROW,prod_mlty)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(separated_nonempty_list(AND,recursive_clause)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END
follow(separated_nonempty_list(AND,mlty_def)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(separated_nonempty_list(AND,let_clause)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END
follow(rule_) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(recursive_clause) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END AND
follow(prod_mlty_) = WITH WHEN VERBOSITY SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(prod_mlty) = WITH WHEN VERBOSITY SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END DARROW COMMA ARROW
follow(premise_) = TYPE LPAREN COLON ARROW
follow(premise) = TYPE LPAREN COLON ARROW
follow(prefix_term_) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(prefix_term) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(prefix_pattern_) = WHEN UNDERSCORE UATOM TYPE STAR SEMI RPAREN RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(prefix_pattern) = WHEN UNDERSCORE UATOM TYPE STAR SEMI RPAREN RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(pattern_) = WHEN SEMI RPAREN RBRACK RBRACE COMMA ARROW
follow(pattern) = WHEN SEMI RPAREN RBRACK RBRACE COMMA ARROW
follow(option(SEMISEMI)) = EOF
follow(option(SEMI)) = RBRACK
follow(opt_name(tt_name)) = UNDERSCORE TYPE RPAREN RBRACE NAME LPAREN COLON
follow(opt_name(ml_name)) = WITH VERBOSITY UNDERSCORE SEMISEMI RULE REQUIRE OPERATION OPEN NAME MODULE MLTYPE LPAREN LET INCLUDE EXTERNAL EXCEPTION EQ EOF END COMMA COLON
follow(op_name) = UNDERSCORE UATOM QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK COLON ARROW
follow(op_mlsig) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(nonempty_list(substitution_term)) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR ARROW AND
follow(nonempty_list(simple_mlty)) = WITH WHEN VERBOSITY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(nonempty_list(premise)) = ARROW
follow(nonempty_list(prefix_pattern)) = WHEN TYPE STAR SEMI RPAREN RBRACK RBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(nonempty_list(opt_name(tt_name))) = RBRACE COLON
follow(nonempty_list(opt_name(ml_name))) = COMMA
follow(nonempty_list(ml_arg)) = ARROW
follow(nonempty_list(maybe_typed_binder)) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
follow(nonempty_list(anon_name(tt_name))) = RBRACE COLON
follow(module_path) = PERIOD
follow(module_name) = WITH VERBOSITY SEMISEMI RULE REQUIRE PERIOD OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END COMMA
follow(mlty_defs) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(mlty_def_body) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END AND
follow(mlty_def) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END AND
follow(mlty_constructor) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END BAR AND
follow(mlty_) = WITH VERBOSITY SEMISEMI RULE RPAREN REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END BAR AND
follow(mlty) = WITH VERBOSITY SEMISEMI RULE RPAREN REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END BAR AND
follow(ml_schema_) = RPAREN EQ
follow(ml_schema) = RPAREN EQ
follow(ml_name) = WITH WHEN VERBOSITY UNDERSCORE UATOM TYPE STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP OPERATION OPEN NAME MODULE MLUNIT MLTYPE MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN LET LBRACK INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE EXTERNAL EXCEPTION EQEQ EQ EOF END DARROW COMMA COLONGT COLON BY BAR AS ARROW AND
follow(ml_module_top) = EOF END
follow(ml_module) = EOF END
follow(ml_arg) = NAME LPAREN EQ COLONGT ARROW
follow(maybe_typed_binder) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK LBRACE CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
follow(match_cases) = END
follow(match_case) = END BAR
follow(mark_location(ty_term_)) = WITH VERBOSITY TRY SEMISEMI RULE RPAREN REQUIRE RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END COMMA COLONGT BY BAR AND
follow(mark_location(top_term_)) = SEMISEMI EOF END
follow(mark_location(top_command_)) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(mark_location(term_)) = WITH VERBOSITY TRY SEMISEMI RULE RPAREN REQUIRE RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END COMMA COLONGT BY BAR AND
follow(mark_location(substitution_term_)) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(mark_location(simple_mlty_)) = WITH WHEN VERBOSITY UNDERSCORE STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN NAME MODULE MLUNIT MLTYPE MLSTRING MLJUDGEMENT MLDERIVATION MLBOUNDARY LPAREN LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(mark_location(prod_mlty_)) = WITH WHEN VERBOSITY SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END DARROW COMMA ARROW
follow(mark_location(premise_)) = TYPE LPAREN COLON ARROW
follow(mark_location(prefix_term_)) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(mark_location(prefix_pattern_)) = WHEN UNDERSCORE UATOM TYPE STAR SEMI RPAREN RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP NAME LPAREN LBRACK INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(mark_location(pattern_)) = WHEN SEMI RPAREN RBRACK RBRACE COMMA ARROW
follow(mark_location(mlty_)) = WITH VERBOSITY SEMISEMI RULE RPAREN REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END BAR AND
follow(mark_location(ml_schema_)) = RPAREN EQ
follow(mark_location(let_pattern_)) = EQ COLONGT
follow(mark_location(binop_term_)) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQ EOF END COMMA COLONGT BY BAR ARROW AND
follow(mark_location(binop_pattern_)) = WHEN TYPE STAR SEMI RPAREN RBRACK RBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(mark_location(app_term_)) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR ARROW AND
follow(mark_location(app_mlty_)) = WITH WHEN VERBOSITY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(loption(separated_nonempty_list(SEMI,pattern))) = RBRACK
follow(loption(separated_nonempty_list(COMMA,term))) = RPAREN
follow(loption(separated_nonempty_list(COMMA,pattern))) = RPAREN
follow(loption(separated_nonempty_list(BAR,top_operation_case))) = END
follow(loption(separated_nonempty_list(BAR,mlty_constructor))) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END AND
follow(loption(separated_nonempty_list(BAR,match_case))) = END
follow(loption(separated_nonempty_list(BAR,handler_case))) = END
follow(local_context) = UNDERSCORE REF RAISE QUOTED_STRING PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
follow(list_contents) = RBRACK
follow(list(typed_binder)) = UNDERSCORE REF RAISE QUOTED_STRING PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
follow(list(substitution_term)) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR ARROW AND
follow(list(premise)) = TYPE COLON
follow(list(prefix_pattern)) = COLON ARROW
follow(list(opt_name(ml_name))) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END
follow(list(ml_arg)) = EQ COLONGT
follow(let_pattern_) = EQ COLONGT
follow(let_pattern) = EQ COLONGT
follow(let_clause) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN MODULE MLTYPE LET INCLUDE IN EXTERNAL EXCEPTION EOF END AND
follow(let_annotation) = EQ
follow(handler_checking) = ARROW
follow(handler_cases) = END
follow(handler_case) = END BAR
follow(file) = #
follow(exc_name) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN OF MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END
follow(equality_premise_name) = RPAREN
follow(constr_name) = WITH VERBOSITY SEMISEMI RULE REQUIRE OPERATION OPEN OF MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EOF END BAR AND
follow(commandline) = #
follow(binop_term_) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQ EOF END COMMA COLONGT BY BAR ARROW AND
follow(binop_term) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQ EOF END COMMA COLONGT BY BAR ARROW AND
follow(binop_pattern_) = WHEN TYPE STAR SEMI RPAREN RBRACK RBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(binop_pattern) = WHEN TYPE STAR SEMI RPAREN RBRACK RBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(app_term_) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR ARROW AND
follow(app_term) = WITH VERBOSITY TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR ARROW AND
follow(app_pattern_) = WHEN TYPE STAR SEMI RPAREN RBRACK RBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS EQEQ EQ COMMA COLONGT COLON BY AS ARROW
follow(app_mlty_) = WITH WHEN VERBOSITY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(app_mlty) = WITH WHEN VERBOSITY STAR SEMISEMI SEMI RULE RPAREN REQUIRE RBRACK RBRACE OPERATION OPEN MODULE MLTYPE LET INCLUDE EXTERNAL EXCEPTION EQ EOF END DARROW COMMA BAR ARROW AND
follow(any_name) = WITH VERBOSITY UNDERSCORE UATOM TRY STAR SEMISEMI SEMI RULE RPAREN REQUIRE REF RBRACK RBRACE QUOTED_STRING QQMARK PREFIXOP OPERATION OPEN NATURAL NAME MODULE MLTYPE LPAREN LET LBRACK LBRACE INFIXOP4 INFIXOP3 INFIXOP2 INFIXOP1 INFIXOP0 INFIXCONS INCLUDE IN EXTERNAL EXCEPTION EQEQ EQ EOF END COMMA COLONQT COLONGT COLONEQ COLON BY BAR BANG ARROW AND
follow(anon_name(tt_name)) = UNDERSCORE RBRACE NAME LPAREN COLON
follow(abstraction) = REF RAISE QUOTED_STRING QQMARK PREFIXOP OCCURS NATURAL NAME LPAREN LBRACK CONVERT CONTEXT CONGRUENCE BANG ABSTRACT
Built an LR(0) automaton with 701 states.
The grammar is not SLR(1) -- 47 states have a conflict.
Built an LR(1) automaton with 702 states.
136 shift/reduce conflicts were silently solved.
261 out of 702 states have a default reduction.
233 out of 702 states are represented.
89 out of 217 symbols keep track of their start position.
92 out of 217 symbols keep track of their end position.
141 out of 345 productions exploit shiftreduce optimization.
0 out of 702 states can peek at an error.
1891 functions before inlining, 298 functions after inlining.
(* Infix operations *)
%token <Name.t * Location.t> QQMARK PREFIXOP EQ INFIXOP0 INFIXOP1 INFIXCONS INFIXOP2 STAR INFIXOP3 INFIXOP4
(* Names and numerals *)
%token UNDERSCORE
%token <Name.t> NAME
%token <int> NUMERAL
(* Parentheses & punctuations *)
%token LPAREN RPAREN
%token LBRACK RBRACK
%token LBRACE RBRACE
%token COLON COMMA PERIOD COLONGT COLONQT
%token ARROW
(* Modules *)
%token MODULE STRUCT
(* Things specific to toplevel *)
%token SEMISEMI
%token RULE
(* Let binding *)
%token LET REC AND IN
(* Meta-level programming *)
%token OPERATION
%token MATCH WHEN END
%token AS TYPE BY
%token EQEQ
%token EXCEPTION RAISE
%token TRY WITH HANDLER BAR VAL
%token SEMI
%token NATURAL
%token EXTERNAL
%token UATOM
(* Meta types *)
%token MLUNIT MLSTRING
%token MLJUDGEMENT MLBOUNDARY MLDERIVATION
%token MLTYPE DARROW
%token MLFORALL
%token OF
(* References *)
%token BANG COLONEQ REF
(* Functions *)
%token FUN
(* TT commands *)
%token FRESH CONVERT CONGRUENCE CONTEXT OCCURS DERIVE ABSTRACT
(* Toplevel directives *)
%token VERBOSITY
%token <string> QUOTED_STRING
%token REQUIRE INCLUDE OPEN
%token EOF
(* Precedence and fixity of infix operators *)
%nonassoc COLONEQ
%left EQ INFIXOP0
%right INFIXOP1
%right INFIXCONS
%left INFIXOP2
%left STAR INFIXOP3
%right INFIXOP4
%start <Sugared.toplevel list> file
%start <Sugared.toplevel> commandline