A Concurrent Perspective on Smart Contracts
Programming and reasoning with algebraic effects and dependent types