# `fun` statement

The `fun` keyword is used to define & undefine [functions](../../functions/index.md).

A function can be defined as follows:

```typeql
define
fun <name>(<arguments>) -> <return>:
<body>
<return-statement>
```

A function can be undefined using:

undefine fun <name>;

A function’s signature and implementation can be re-defined as follows:

```typeql
redefine
fun <name>(<arguments>) -> <return>:
<body>
<return-statement>
```

[Edit on GitHub](https://github.com/typedb/typedb-docs/edit/3.x-development/typeql-reference/modules/ROOT/pages/statements/fun.adoc) Edit this page on GitHub.