Roles

From HaskellWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Roles are a feature introduced with GHC 7.8 to discern the difference between compile-time type equality (introduced by type synonyms and type families) and runtime type equality (introduced by newtypes).

See the developer wiki page on roles and the draft paper for useful information.

If you need to put role annotations (described in the linked pages above) in your code, you may want to check out the no-role-annots package, which allows you to write role annotations without using the new -XRoleAnnotations extension.