Proposal: export more from Data.Kind

Hello, I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.) Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell. Data.Kind already contains Constraint and Type. -Krzysztof

+1
On Sun, Aug 2, 2020, 9:10 AM Krzysztof Gogolewski
Hello,
I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.)
Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell.
Data.Kind already contains Constraint and Type.
-Krzysztof _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

My impression is that RuntimeRep may not have stabilized all the way yet.
There are things that work for LiftedRep and UnliftedRep that want to be
polymorphic that way.
On Sun, Aug 2, 2020, 12:10 PM Krzysztof Gogolewski
Hello,
I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.)
Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell.
Data.Kind already contains Constraint and Type.
-Krzysztof _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

I suppose we might want RuntimeRep to stabilise before its inclusion in a
non-GHC.* namespace. Open to suggestions on whether that matters -
typically people using RuntimeRep know what they're doing, and are small in
number, so they could handle the breakage just fine.
On Sun, Aug 2, 2020, 9:12 AM David Feuer
My impression is that RuntimeRep may not have stabilized all the way yet. There are things that work for LiftedRep and UnliftedRep that want to be polymorphic that way.
On Sun, Aug 2, 2020, 12:10 PM Krzysztof Gogolewski < krz.gogolewski@gmail.com> wrote:
Hello,
I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.)
Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell.
Data.Kind already contains Constraint and Type.
-Krzysztof _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

David makes a very good point here. That perhaps they should first
stabilize a bit more before being exposed through there
On Sun, Aug 2, 2020 at 12:12 PM David Feuer
My impression is that RuntimeRep may not have stabilized all the way yet. There are things that work for LiftedRep and UnliftedRep that want to be polymorphic that way.
On Sun, Aug 2, 2020, 12:10 PM Krzysztof Gogolewski < krz.gogolewski@gmail.com> wrote:
Hello,
I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.)
Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell.
Data.Kind already contains Constraint and Type.
-Krzysztof _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

I'm sympathetic to this proposal, but I don't have a well considered opinion. Instead, I'll present a few facts: - TYPE, RuntimeRep, and Multiplicity should be allowed in Safe Haskell. You can't do anything untoward with these folks. - That said, Safe should not imply that linear-types guarantees are in force. At least, not yet. Linear types features cannot cause seg-faults (or other violations of safety expectations). - RuntimeRep has not yet stabilized. But it is a niche feature, and I wouldn't really expect stabilization here for some time. Maybe a nice compromise is introducing GHC.Kind that is -XSafe and exports all of these? Richard
On Aug 3, 2020, at 6:49 AM, Carter Schonwald
wrote: David makes a very good point here. That perhaps they should first stabilize a bit more before being exposed through there
On Sun, Aug 2, 2020 at 12:12 PM David Feuer
mailto:david.feuer@gmail.com> wrote: My impression is that RuntimeRep may not have stabilized all the way yet. There are things that work for LiftedRep and UnliftedRep that want to be polymorphic that way. On Sun, Aug 2, 2020, 12:10 PM Krzysztof Gogolewski
mailto:krz.gogolewski@gmail.com> wrote: Hello, I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.)
Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell.
Data.Kind already contains Constraint and Type.
-Krzysztof _______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries _______________________________________________ Libraries mailing list Libraries@haskell.org mailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries

That sounds good. Totally all for it. And maybe have that be a one stop
shop for kind level stuff like type lits etc?
On Mon, Aug 3, 2020 at 8:29 AM Richard Eisenberg
I'm sympathetic to this proposal, but I don't have a well considered opinion. Instead, I'll present a few facts:
- TYPE, RuntimeRep, and Multiplicity should be allowed in Safe Haskell. You can't do anything untoward with these folks.
- That said, Safe should not imply that linear-types guarantees are in force. At least, not yet. Linear types features cannot cause seg-faults (or other violations of safety expectations).
- RuntimeRep has not yet stabilized. But it is a niche feature, and I wouldn't really expect stabilization here for some time.
Maybe a nice compromise is introducing GHC.Kind that is -XSafe and exports all of these?
Richard
On Aug 3, 2020, at 6:49 AM, Carter Schonwald
wrote: David makes a very good point here. That perhaps they should first stabilize a bit more before being exposed through there
On Sun, Aug 2, 2020 at 12:12 PM David Feuer
wrote: My impression is that RuntimeRep may not have stabilized all the way yet. There are things that work for LiftedRep and UnliftedRep that want to be polymorphic that way.
On Sun, Aug 2, 2020, 12:10 PM Krzysztof Gogolewski < krz.gogolewski@gmail.com> wrote:
Hello,
I'd like to export TYPE, RuntimeRep(..), Multiplicity(..) from Data.Kind. (Multiplicity is the Linear Haskell type - One and Many.)
Currently you have to import GHC.Exts / GHC.Types which conflicts with Safe Haskell. I think both levity and linearity polymorphism should be available under Safe Haskell.
Data.Kind already contains Constraint and Type.
-Krzysztof _______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________ Libraries mailing list Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
participants (5)
-
Carter Schonwald
-
chessai
-
David Feuer
-
Krzysztof Gogolewski
-
Richard Eisenberg