anchor.diff:        result = _lowerIdentifier(this, expression);
       } else if (expression is ast.CallExpression) {
         result = _lowerCall(this, expression);
  +    } else if (expression is ast.ReturnExpression) {
  +      result = _lowerReturn(this, expression);
       } else {
         throw CompilerError.unsupportedFeature(
           'Unsupported expression.',
  
positive.code:   final token = expression.value;
    hir.Literal literal;
    if (token is ast.BoolLiteralToken) {
      if (!context.isValidReturnType(hir.CandyType.bool)) return Ok([]);
      literal = hir.Literal.boolean(token.value);
    } else if (token is ast.IntLiteralToken) {
      if (!context.isValidReturnType(hir.CandyType.int)) return Ok([]);
      literal = hir.Literal.integer(token.value);
    } else {
      throw CompilerError.unsupportedFeature(
  
negative.code:       final localContext = _LocalContext.forFunction(
          context,
          declarationId,
          functionAst,
        );
        final statements =
  