Is it possible to delegate the money locked in a smart contract? And how? Using what haskell instructions?
A shelley address has two parts: payment part and staking part. For each of these parts, you have its specific private key and whoever holds it, has the ability to manage that part. So, you have an address where the payment part if managed by the smart contact, but the staking part is managed by you. This video might be helpful https://www.youtube.com/watch?v=NjPf_b9UQNs
So, a Shelley payment addresses that is used by scripts can still delegate to an associated stake key. When you create the locked output, you decide the staking.