# Proc fred(args) param

**URL:** <https://chapel.discourse.group/t/proc-fred-args-param/33285>\
**Category:** Users\
**Created:** [May 9, 2024, 3:19am UTC](https://chapel.discourse.group/t/proc-fred-args-param/33285 "2024-05-09T03:19:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![damianmoz](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/damianmoz/32/319_2.png) [@damianmoz](https://chapel.discourse.group/u/damianmoz)\
**Post date:** [May 9, 2024, 3:19am UTC](https://chapel.discourse.group/t/proc-fred-args-param/33285/1 "2024-05-09T03:19:51Z")

</div>

Is this by definition **inline** or should I spell it out explicitly, i.e. is there a difference if I prefix (or not) the **proc** with **inline**.

---

<div class="post-metadata">

**Author:** ![vass](https://yyz2.discourse-cdn.com/free1/user_avatar/chapel.discourse.group/vass/32/692_2.png) [@vass](https://chapel.discourse.group/u/vass)\
**Post date:** [May 9, 2024, 3:59am UTC](https://chapel.discourse.group/t/proc-fred-args-param/33285/2 "2024-05-09T03:59:31Z")

</div>

Are you asking specifically about procs with `param` return intent? Those are removed before the inlining pass. Therefore `inline` does not make a difference.

For non-`param` and non-`type` procs, `inline` ensures that the Chapel compiler inlines the proc. Without `inline`, the Chapel compiler inlines only iterators except in corner cases.

Once the generated code is passed to the backend compiler, it uses its own judgment what to inline; Chapel's `inline` annotation - or its absence - has no impact there.
