There’s still some work to do before the v0.14.0 release but I’ve audited the purescript, purescript-web, purescript-node and purescript-contrib organizations plus a few more packages to list the types needing roles declarations for a v0.14.0 package set. I’m opening this thread to discuss how to proceed, catch the types I’ve probably missed and coordinate the patches if anyone wants to help.
The following types have a phantom roled argument that should be restricted to nominal:
+ [  ] bodil/purescript-sized-vectors: Data.Vec.Vec
+ [  ] purescript-contrib/purescript-aff-bus: Effect.Aff.Bus.Bus
+ [  ] purescript-contrib/purescript-css: CSS.Size.Angle and CSS.Size.Size
+ [  ] purescript-contrib/purescript-options: Data.Options.Options
+ [  ] purescript-web/purescript-web-xhr: Web.XHR.ResponseType.ResponseType
The following types have phantom roled arguments that should be restricted to representational:
+ [  ] lumihq/purescript-react-basic-classic: React.Basic.Classic.Component
+ [  ] natefaubion/purescript-variant: Data.Functor.VariantF
+ [  ] purescript-contrib/purescript-ace: Ace.Config.ConfigOption
+ [  ] purescript-contrib/purescript-css: CSS.Property.Key
+ [  ] purescript/purescript-enums: Data.Enum.Cardinality
The following types have a representational roled argument that should be restricted to nominal:
+ [  ] fehrenbach/purescript-unordered-collections: Data.HashMap.HashMap
+ [  ] flip111/purescript-ordered-set: Data.Set.Ordered.OSet
+ [  ] hdgarrood/purescript-sequences: Data.FingerTree.Node
+ [  ] purescript/purescript-ordered-collections: Data.Map.Map
I’m not sure about the phantom argument of ST types but some roles of the following foreign data types should be relaxed to representational:
+ [  ] f-f/purescript-react-basic-native: React.Basic.Native.Events.NativeSyntheticEvent 
+ [  ] lumihq/purescript-react-basic-classic: React.Basic.Classic.ReactComponentInstance
+ [  ] lumihq/purescript-react-basic: React.Basic.ReactComponent, React.Basic.ReactContext and React.Basic.Ref
+ [  ] natefaubion/purescript-variant: Data.Variant.Internal.VariantFCase and Data.Variant.Variant
+ [  ] nwolverson/purescript-aff-promise: Control.Promise.Promise
+ [  ] purescript-contrib/purescript-aff: Effect.Aff.Aff and Effect.Aff.ParAff
+ [  ] purescript-contrib/purescript-avar: Effect.AVar
+ [  ] purescript-contrib/purescript-nullable: Data.Nullable.Nullable
+ [  ] purescript-contrib/purescript-react: React.ReactClass, React.ReactThis, React.Ref.Ref, React.Ref.RefHandler and React.SyntheticEvent.SyntheticEvent_
+ [  ] purescript-web/purescript-web-promise: Web.Promise.Internal.Promise
+ [  ] purescript/purescript-arrays: Data.Array.STArray
+ [  ] purescript/purescript-effect: Effect.Effect and Effect.Uncurried.EffectFn1 to Effect.Uncurried.EffectFn10
+ [  ] purescript/purescript-exists: Data.Exists.Exists
+ purescript/purescript-foreign-object: Foreign.Object.Object and Foreign.Object.ST.STObject
+ [  ] purescript/purescript-functions: Data.Function.Uncurried.Fn0 to Data.Function.Uncurried.Fn10
+ [  ] purescript/purescript-lazy: Data.Lazy.Lazy
+ [  ] purescript/purescript-record: Record.ST.STRecord
+ [  ] purescript/purescript-refs: Effect.Ref.Ref
+ [  ] purescript/purescript-st: Control.Monad.ST.Ref.STRef and Control.Monad.ST.ST
I’m not familiar with Halogen nor React Basic Hooks but they’ll probably need roles declarations too.