# I've just discovered what the \`@\<template\_name\>\` notation in functions like \`fetchByKey\` et al means

**URL:** <https://forum.canton.network/t/ive-just-discovered-what-the-template-name-notation-in-functions-like-fetchbykey-et-al-means/2218>\
**Category:** Outreach\
**Created:** [March 7, 2021, 9:59am UTC](https://forum.canton.network/t/ive-just-discovered-what-the-template-name-notation-in-functions-like-fetchbykey-et-al-means/2218 "2021-03-07T09:59:15Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![Luciano](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/luciano/32/319_2.png) [@Luciano](https://forum.canton.network/u/Luciano)\
**Post date:** [March 8, 2021, 11:21am UTC](https://forum.canton.network/t/ive-just-discovered-what-the-template-name-notation-in-functions-like-fetchbykey-et-al-means/2218/3 "2021-03-08T11:21:46Z")

</div>

Here’s an actual example of what I’m talking about above:

> [@Specifying symbol type for \`HasField x r a\`](https://discuss.daml.com/t/specifying-symbol-type-for-hasfield-x-r-a/701/2):
>
> Hi Luciano, that’s a very interesting problem. The solution mostly involves sprinkling a few more types across your code. Despite that, you will still need to enable the AllowAmbiguousTypes language extension because the type parameter f only appears within the type class constraints. First of all, you need to tell the compiler that you want to access the x field in updateInner's setField and getField: updateInner : forall x f. (Functor f, HasField x Outer (f Inner)) =\> (Inner -\> Inner) -\> Ou…

---

_[View the full topic](https://forum.canton.network/t/ive-just-discovered-what-the-template-name-notation-in-functions-like-fetchbykey-et-al-means/2218)._
