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.