================================================================================
lambdas/lambda1
================================================================================

local constant = () -> "abc"

res1 = constant.apply()

local even = (x) -> x % 2 == 0

res2 = even.apply(10)
res3 = even.apply(11)

local mult = (x, y) -> x * y

res4 = mult.apply(2, 3)

--------------------------------------------------------------------------------

(module
  (classProperty
    (modifier)
    (identifier)
    (functionLiteral
      (parameterList)
      (slStringLiteral)))
  (classProperty
    (identifier)
    (methodCallExpr
      (variableExpr
        (identifier))
      (identifier)
      (argumentList)))
  (classProperty
    (modifier)
    (identifier)
    (functionLiteral
      (parameterList
        (typedIdentifier
          (identifier)))
      (binaryExpr
        (binaryExpr
          (variableExpr
            (identifier))
          (intLiteral))
        (intLiteral))))
  (classProperty
    (identifier)
    (methodCallExpr
      (variableExpr
        (identifier))
      (identifier)
      (argumentList
        (intLiteral))))
  (classProperty
    (identifier)
    (methodCallExpr
      (variableExpr
        (identifier))
      (identifier)
      (argumentList
        (intLiteral))))
  (classProperty
    (modifier)
    (identifier)
    (functionLiteral
      (parameterList
        (typedIdentifier
          (identifier))
        (typedIdentifier
          (identifier)))
      (binaryExpr
        (variableExpr
          (identifier))
        (variableExpr
          (identifier)))))
  (classProperty
    (identifier)
    (methodCallExpr
      (variableExpr
        (identifier))
      (identifier)
      (argumentList
        (intLiteral)
        (intLiteral)))))
