Re: Type class for sanity

2016-01-25 Thread David Feuer
You're correct. Please forget that name. On Jan 25, 2016 12:33 PM, "wren romano" wrote: > On Mon, Jan 25, 2016 at 7:34 AM, Richard Eisenberg > wrote: > > But I suggest a different name. Ground? Terminating? NormalForm? > Irreducible? ValueType? I don't love any of these, but I love Sane less. >

Re: Type class for sanity

2016-01-25 Thread Richard Eisenberg
> Sent: 25 January 2016 14:06 > To: David Feuer > Cc: Haskell Libraries ; ghc-devs > Subject: Re: Type class for sanity > > Might be nice to have whnf too, while we're at it. Perhaps whnf is enough for > someone and going all the way to nf would be less efficient / i

RE: Type class for sanity

2016-01-25 Thread Simon Peyton Jones
Feuer Cc: Haskell Libraries ; ghc-devs Subject: Re: Type class for sanity Might be nice to have whnf too, while we're at it. Perhaps whnf is enough for someone and going all the way to nf would be less efficient / impossible. Richard On Jan 25, 2016, at 8:44 AM, David Feuer mailto:dav

Re: Type class for sanity

2016-01-25 Thread Richard Eisenberg
Might be nice to have whnf too, while we're at it. Perhaps whnf is enough for someone and going all the way to nf would be less efficient / impossible. Richard On Jan 25, 2016, at 8:44 AM, David Feuer wrote: > I don't care about the name at all. Unstuck? Would we want to distinguish > between

Re: Type class for sanity

2016-01-25 Thread David Feuer
I don't care about the name at all. Unstuck? Would we want to distinguish between whnf (e.g., Proxy Any) and nf, or is only nf sufficiently useful? On Jan 25, 2016 7:34 AM, "Richard Eisenberg" wrote: > +1 > > This would be very easy to implement, too. > > But I suggest a different name. Ground? T

Re: Type class for sanity

2016-01-25 Thread Richard Eisenberg
+1 This would be very easy to implement, too. But I suggest a different name. Ground? Terminating? NormalForm? Irreducible? ValueType? I don't love any of these, but I love Sane less. On Jan 24, 2016, at 4:24 PM, David Feuer wrote: > Since type families can be stuck, it's sometimes useful to

Re: Type class for sanity

2016-01-24 Thread David Feuer
See https://typesandkinds.wordpress.com/2015/09/09/what-are-type-families/ for some discussion. A type family application is stuck if it can't reduce further and has not reached a proper type. Given the aforementioned type family Foo, the application Foo 'False is stuck. It's a type of kind *, and

Type class for sanity

2016-01-24 Thread David Feuer
Since type families can be stuck, it's sometimes useful to restrict things to sane types. At present, the most convenient way I can see to do this in general is with Typeable: type family Foo x where Foo 'True = Int class Typeable (Foo x) => Bar x where blah :: proxy x -> Foo x This will pre