Simplicity: implementing a smart contract language in 30 lines of Haskell
medium.com