# module `concrete.fhe.compilation.decorators`
Declaration of `circuit` and `compiler` decorators.
---
## function `circuit`
```python
circuit(
parameters: Mapping[str, Union[str, EncryptionStatus]],
configuration: Optional[Configuration] = None,
artifacts: Optional[DebugArtifacts] = None,
**kwargs
)
```
Provide a direct interface for compilation of single circuit programs.
**Args:**
parameters (Mapping[str, Union[str, EncryptionStatus]]): encryption statuses of the parameters of the function to compile
configuration(Optional[Configuration], default = None): configuration to use
artifacts (Optional[DebugArtifacts], default = None): artifacts to store information about the process
kwargs (Dict[str, Any]): configuration options to overwrite
---
## function `compiler`
```python
compiler(parameters: Mapping[str, Union[str, EncryptionStatus]])
```
Provide an easy interface for the compilation of single-circuit programs.
**Args:**
parameters (Mapping[str, Union[str, EncryptionStatus]]): encryption statuses of the parameters of the function to compile
---
## function `module`
```python
module()
```
Provide an easy interface for the compilation of multi functions modules.
---
## function `function`
```python
function(parameters: Dict[str, Union[str, EncryptionStatus]])
```
Provide an easy interface to define a function within an fhe module.
**Args:**
parameters (Mapping[str, Union[str, EncryptionStatus]]): encryption statuses of the parameters of the function to compile
---
## class `Compilable`
Compilable class, to wrap a function and provide methods to trace and compile it.
### method `__init__`
```python
__init__(function_: Callable, parameters)
```
---
### method `compile`
```python
compile(
inputset: Optional[Iterable[Any], Iterable[Tuple[Any, ]]] = None,
configuration: Optional[Configuration] = None,
artifacts: Optional[DebugArtifacts] = None,
**kwargs
) → Circuit
```
Compile the function into a circuit.
**Args:**
inputset (Optional[Union[Iterable[Any], Iterable[Tuple[Any, ...]]]]): optional inputset to extend accumulated inputset before bounds measurement
configuration(Optional[Configuration], default = None): configuration to use
artifacts (Optional[DebugArtifacts], default = None): artifacts to store information about the process
kwargs (Dict[str, Any]): configuration options to overwrite
**Returns:**
Circuit: compiled circuit
---
### method `trace`
```python
trace(
inputset: Optional[Iterable[Any], Iterable[Tuple[Any, ]]] = None,
configuration: Optional[Configuration] = None,
artifacts: Optional[DebugArtifacts] = None,
**kwargs
) → Graph
```
Trace the function into computation graph.
**Args:**
inputset (Optional[Union[Iterable[Any], Iterable[Tuple[Any, ...]]]]): optional inputset to extend accumulated inputset before bounds measurement
configuration(Optional[Configuration], default = None): configuration to use
artifacts (Optional[DebugArtifacts], default = None): artifacts to store information about the process
kwargs (Dict[str, Any]): configuration options to overwrite
**Returns:**
Graph: computation graph representing the function prior to MLIR conversion