Blog: Smart Contracts
![Lorentz: Type-Safe Storage Migrations](/files/u0/thumb.u0lmck3q.normal_(8).jpg)
![Lorentz: Type-Safe Storage Migrations](/files/vu/thumb.vu1lprqw.mobile_(8).jpg)
Lorentz: Type-Safe Storage Migrations
In this article, we'll look at how you can make storage migratable in Lorentz, our Haskell eDSL for the Michelson smart contract language.
![Lorentz: Type-Safe Upgradeable Storage](/files/33/thumb.33nc4uwp.normal-1.jpg)
![Lorentz: Type-Safe Upgradeable Storage](/files/rt/thumb.rtqjcps4.mobile_(8).jpg)
Lorentz: Type-Safe Upgradeable Storage
Once deployed, large-scale smart contracts can sometimes become outdated and require upgrades. In this part of our Lorentz series, we show how to make a smart contract with upgradeable storage in Lorentz.
![smart contract documentation thumbnail](/files/k5/thumb.k553xl3i.thumbnail_(38).jpg)
![smart contract documentation thumbnail](/files/16/thumb.16xjc004.thumbnail-mob_(6).jpg)
Lorentz: Generating Documentation for Smart Contracts
In this article, we'll show how you can maintain Tezos smart contract documentation with ease by using Lorentz, our eDSL for Michelson smart contracts.
![Lorentz: Achieving Correctness with Haskell Newtypes](/files/8a/thumb.8abtcab0.thumbnail_(19).jpg)
![Lorentz: Achieving Correctness with Haskell Newtypes](/files/go/thumb.gomy2mu9.thumbnail-mobile_(6).jpg)
Lorentz: Achieving Correctness with Haskell Newtypes
In this article, we will introduce you to the use of Haskell newtypes in Lorentz, the smart contract eDSL for Michelson.
![haskell generics edsl](/files/oh/thumb.oh7znb0t.thumbnail3_(2).jpg)
![haskell generics edsl](/files/ur/thumb.urhwtat1.thumbnail-mobile3.jpg)
Lorentz: Introducing Complex Objects with Haskell Generics
This is the second post in a series about Lorentz — a Haskell eDSL for the Michelson smart contract language. In this post, we will enrich Lorentz with additional functionality, adding objects with multiple fields.
![Lorentz: Implementing Smart Contract eDSL in Haskell](/files/5c/thumb.5cr94n2x.2_(5).jpg)
![Lorentz: Implementing Smart Contract eDSL in Haskell](/files/rd/thumb.rdhh62x1.headpics_for_mobile-03.jpg)
Lorentz: Implementing Smart Contract eDSL in Haskell
Together with the TQ Group, we have been working on several tools that use Haskell to improve writing and testing Michelson code on Tezos. This is the first post in a series about one of them — Lorentz, a Haskell eDSL for Michelson smart contracts.