What does @Type mean?

Sorry for what might be a really dumb question here. I was looking something up on Pursuit and was a little confused by this @Type syntax. From what I can tell, it’s present on any class member. eq for example says

eq :: forall a. Eq @Type a => a -> a -> Boolean

when I would have expected

eq :: forall a. Eq a => a -> a -> Boolean

My questions are:

  1. What does @Type mean?
  2. Does that correspond to some feature in compiled code I don’t know about?
  3. Is that new, or have I experienced some sudden forgetfulness of how Pursuit has always printed class members?
1 Like

Pursuit was redeployed against 0.14. I think this is just due to PolyKind changes, and potentially effects from backwards compatability (none of the things on Pursuit have been recompiled on 0.14 AFAIK). Docs rendering might need to omit kind applications.

@ntwilson I deployed changes to Pursuit for 0.14 as a test, and you’ve discovered an issue! Everything else seems to look good, but I’ve rolled back the changes so I can figure out why you’re seeing what you’re seeing.

If you go to Pursuit now you should see everything is back to normal.

2 Likes

Indeed I do! Thanks for diagnosing that

I’ve updated Pursuit again to be 0.14-compatible, this time not including the kind annotations that you were noticing in the search results before. Please let me know if you happen to come across anything else funky!

1 Like

Oh no, for a second I thought we have type applications in Purescript :slight_smile:

4 Likes

In 0.14 the type language has kind applications, but we do not support it in the parser. In general we remove them in primary errors, but we retain them in type error traces to aid debugging.