Îõ³h$·Á0      !"#$%&'()*+,-./None.9?ÉÔØÙµroles"An argument is phantom if you can 0 the whole ignoring the argumentrolesàAn argument is representational if you can lift a coercion of the argument into one of the whole1      !"#$%&'()*+,-./012345$roles-0.2.1.0-JVSAz9AW4866wZI7fjbAVU Data.RolesPhantomphantomRepresentationalrep$fRepresentationalTYPETYPELast$fRepresentationalTYPETYPEFirst$fRepresentationalTYPETYPEEndo$fRepresentationalTYPETYPEDual!$fRepresentationalTYPETYPEProduct$fRepresentationalTYPETYPESum!$fRepresentationalTYPETYPEComplex $fRepresentationalTYPETYPEIntMap$fRepresentationalTYPETYPEMap$fRepresentationalTYPETYPEST$fRepresentationalTYPETYPEIO$fRepresentationalTYPETYPEMaybe$fRepresentationalTYPETYPE[]!$fRepresentationalTYPETYPE(,,,,,)$fRepresentationalTYPE->(,,,,,) $fRepresentationalTYPE->(,,,,,)0 $fRepresentationalTYPE->(,,,,,)1 $fRepresentationalTYPE->(,,,,,)2 $fRepresentationalTYPE->(,,,,,)3 $fRepresentationalTYPETYPE(,,,,)$fRepresentationalTYPE->(,,,,)$fRepresentationalTYPE->(,,,,)0$fRepresentationalTYPE->(,,,,)1$fRepresentationalTYPE->(,,,,)2$fRepresentationalTYPETYPE(,,,)$fRepresentationalTYPE->(,,,)$fRepresentationalTYPE->(,,,)0$fRepresentationalTYPE->(,,,)1$fRepresentationalTYPETYPE(,,)$fRepresentationalTYPE->(,,)$fRepresentationalTYPE->(,,)0$fRepresentationalTYPETYPE(,)$fRepresentationalTYPE->(,) $fRepresentationalTYPETYPEEither$fRepresentationalTYPE->Either$fRepresentationalTYPETYPE->$fRepresentationalTYPE->-> $fRepresentationalk1TYPECoercion$fRepresentationalk1->Coercion$fPhantomk1TYPEConst$fRepresentationalk1TYPEConst$fRepresentationalTYPE->Const$fPhantomk1TYPEProxy$fRepresentationalk1TYPEProxyghc-primGHC.Primcoerce