<p>I think the best use case for <code>unstableMakeIsData</code> is for rapid prototyping. You can use it without having to know the target type's constructor. This also means you don't have to change the call to it every time you change the type while developing the contract.</p>
<p>Ultimately, once the type is more solidified, you'll want to use <code>makeIsDataIndexed</code> with an explicit mapping of the constructor. This is the more &quot;strict&quot; and safe way to do it for production.</p>

CC BY-SA 4.0
2022-01-25T22:42:38.963Z
MuesliSwap uses unstableMakeIsData in its validator too. Is there really a use case for makeIsDataIndexed ? (see: https://github.com/MuesliSwapTeam/muesliswap-cardano-contracts/blob/main/order-validator/src/Cardano/MuesliSwapOrderValidator/OrderValidator.hs)
Jey
CC BY-SA 4.0
2022-01-26T01:13:10.767Z
That's really bad practice and ideally should be caught in code audit.
Samuel Leathers
CC BY-SA 4.0
2022-01-25T20:40:35.970Z
2022-01-25T20:40:35.970Z
Travis
<p>What is the benefit of using unstable functions if those should not be used in production?</p>
<p>Can you name an example use case in favour of the unstable versions?</p>

<plutus-pioneer-program>
Why unstable functions?
# Why unstable functions?

(Asked by: username_0 on 2022-01-25)

What is the benefit of using unstable functions if those should not be used in production?

Can you name an example use case in favour of the unstable versions?

**Tags:** plutus-pioneer-program

---

## 1 answers

### Answer by username_1 on 2022-01-25. Score: 1 | Accepted answer

I think the best use case for `unstableMakeIsData` is for rapid prototyping. You can use it without having to know the target type's constructor. This also means you don't have to change the call to it every time you change the type while developing the contract.

Ultimately, once the type is more solidified, you'll want to use `makeIsDataIndexed` with an explicit mapping of the constructor. This is the more "strict" and safe way to do it for production.

> **Comments:**
> **username_2**: MuesliSwap uses unstableMakeIsData in its validator too. Is there really a use case for makeIsDataIndexed ? (see: https://github.com/MuesliSwapTeam/muesliswap-cardano-contracts/blob/main/order-validator/src/Cardano/MuesliSwapOrderValidator/OrderValidator.hs)  
> **username_3**: That's really bad practice and ideally should be caught in code audit.  

---

