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.
>
> 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
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
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
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
+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
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
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