<div dir="ltr"><div>Often, we need to create a newtype that is equivalent to a given type for safety reasons. Using type  synonym is useless from type safety perspective. With newtype, we have to add a "deriving" clause to it for deriving the required instances, to make it practically useful.</div><div><br></div><div>Does it make sense, and is it possible to have something like a "clonetype" that creates a new type and derives all the instances of the parent type as well? It will be quite helpful in creating equivalent newtype synonyms quickly. Almost always, I do not use a newtype where I should just because of the inconvenience of deriving the instances. Ideally, we should just be able to say something like:</div><div><br></div><div>clonetype MyString = String</div><div><br></div><div>and we are good to go.  What is the shortest possible way to achieve this with currently available mechanisms, if any?</div><div><br></div><div>-harendra</div></div>