# Submitting multiple commands in Daml Script

**URL:** <https://forum.canton.network/t/submitting-multiple-commands-in-daml-script/5221>\
**Category:** App Development\
**Created:** [September 13, 2022, 6:02pm UTC](https://forum.canton.network/t/submitting-multiple-commands-in-daml-script/5221 "2022-09-13T18:02:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Leonid\_Rozenberg](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/leonid_rozenberg/32/48_2.png) [@Leonid\_Rozenberg](https://forum.canton.network/u/Leonid_Rozenberg)\
**Post date:** [September 13, 2022, 6:02pm UTC](https://forum.canton.network/t/submitting-multiple-commands-in-daml-script/5221/1 "2022-09-13T18:02:35Z")

</div>

One can submit multiple commands inside of Daml Script as documented [here](https://docs.daml.com/daml-script/api/Daml-Script.html#type-daml-script-commands-64301), but I always forget the `pure ()` at the end and get an error that is not obvious to me.

What’s the technical reason why we need that `pure ()` at the end?

---

<div class="post-metadata">

**Author:** ![cocreature](https://yyz2.discourse-cdn.com/flex034/user_avatar/forum.canton.network/cocreature/32/36_2.png) [@cocreature](https://forum.canton.network/u/cocreature)\
**Post date:** [September 13, 2022, 7:57pm UTC](https://forum.canton.network/t/submitting-multiple-commands-in-daml-script/5221/2 "2022-09-13T19:57:01Z")

</div>

The perhaps unsatisfying but accurate reason is because that’s what [GHC implemented](https://ghc.gitlab.haskell.org/ghc/doc/users_guide/exts/applicative_do.html). There are good reasons for GHC’s restriction here. In general, Applicative is more limited. In the context of Daml Script that means you cannot have dependencies between the commands. GHC has some heuristics to translate do blocks without dependencies to Applicative operations. You could imagine more complex heuristics but on the other hand those would also be more confusing in their failure cases. The current restrictions on the other hand might feel unnecessarily restrictive but they’re fairly easy to follow.
