# Function and method signatures

## Learning objective
- Declare functions and methods with valid Lucia signatures.

## Key syntax
```lucia
func sum(a: int, b: int): int {
    return a + b;
}

class Account {
    func deposit(amount: float): void {
        print(amount);
    }
}
```

## Key rules
- Every function and method declares return type with `: type`.
- Use `void` when no value is returned.
- Parameters always include explicit types.

## Common mistakes
- Using arrow syntax instead of `: type`.
- Omitting return type in methods.

## Suggested practice
- Define one utility function returning `int` and one class method returning `void`.

## Related
- functions-and-builtins
- oop-and-modules
- diagnostics
