https://serokell.io/blog/lorentz-implementing-smart-contract-edsl-in-haskell
Check out this post by Serokell.