---
title: "newlclosure"
description: "Returns a Lua closure, wrapping a C function when necessary."
---

```lua
newlclosure(fn: function): function
```

---

## Aliases

None.

---

## Arguments

<ParamField body="fn" type="function" required>
  The function to inspect or wrap.
</ParamField>

---

## Returns

<ResponseField name="wrapped" type="function">
  A Lua closure, wrapping the input when needed.
</ResponseField>

Existing Lua closures may be returned unchanged. C wrappers use a private forwarding environment.

---

## Example

```lua
local wrapped = newlclosure(tostring)
print(wrapped(42), islclosure(wrapped))
```
