private Either <IExpression> _AttemptCreate(CreateExprFunc CreateFunc, IParseState OldState, IParseState NewState) { return(Try.Call(() => CreateFunc( OldState.DiffTokens(NewState), NewState.DiffExpressions(OldState)) )); }