When you are writing puzzles in Chialisp you may want to have certain parameters decided before the coins are created. This is called currying. It allows puzzles to be reused but have different content and produce a different hash.
📄️ Inner Puzzles
Sometimes you want the behavior of your puzzles to be composable, so that you can reuse code in multiple ways. An example of this is the Chia Asset Token puzzle, which allows you to specify an inner puzzle.
📄️ Condition Morphing
You've seen how you can use inner puzzles to output conditions and append them to the output of the outer puzzle. However, sometimes you want to change the output of the inner puzzle to enforce certain rules. This is called condition morphing.