
Hello, Here my problem. I extract some information from a database and put them into a type with 50 parameters Type MyData = MyData Int String ... But I need to be able to differenciate two different case. depending on the String content. something like if the String start with "ref-" it is a Caracterization and if not it is a Collect So I end up with this solution data Unchecked data Caracterization data Collect data MyData t = MyData Int String ... now I defined a function getMyDataFromDatabase :: ... -> Mydata Unchecked and isCollect in order to verify that I have a Collect and not something Else isACollect :: MyData Unchecked -> Either Text (MyData Collect). which use coerc in order to avoid copying all the members. It is great. now Here is my problem. I create a method myMethod :: MyData Collect -> IO () but I want my method to work for MyData Collect and Mydata Caracterization but not Unchecked. So It seems to me that I can not just do myMethod :: MyData t -> IO () what is the right way to solve this problem ? thanks for your help. Frederic