fn __action800<'input>(
    input: &'input str,
    __0: (usize, &'input str, usize),
    __1: (usize, Movability, usize),
    __2: (usize, Identifier, usize),
    __3: (usize, Vec<VariableKind>, usize),
    __4: (usize, &'input str, usize),
    __5: (usize, &'input str, usize),
    __6: (usize, &'input str, usize),
    __7: (usize, Ty, usize),
    __8: (usize, &'input str, usize),
    __9: (usize, &'input str, usize),
    __10: (usize, &'input str, usize),
    __11: (usize, Ty, usize),
    __12: (usize, &'input str, usize),
    __13: (usize, Ty, usize),
    __14: (usize, &'input str, usize),
    __15: (usize, &'input str, usize),
    __16: (usize, &'input str, usize),
    __17: (usize, Vec<Ty>, usize),
    __18: (usize, &'input str, usize),
    __19: (usize, &'input str, usize),
    __20: (usize, &'input str, usize),
    __21: (usize, Vec<Ty>, usize),
    __22: (usize, &'input str, usize),
    __23: (usize, &'input str, usize)
) -> CoroutineDefn