Hi there,
I am very new to purescript and haskel as well, so currently i am working on a project to migrate purescript module from pulp to spago. Earlier with pulp there was no issue but while migrating i am facing this issue. Can someone help me on this. Thanks in advance.
The following type class members have not been implemented:
identity :: forall t. Price t t
in type class instance
Control.Category.Category Price
this is the issue, need some context on this issue.
1 Like
Hi and welcome!
I’ll take a guess here, and we can see if it helps with diagnosing the issue.
A little background first. Here’s the docs for Category
. A Category
is just a thing for which there is an identity
function defined. There’s one thing for which this definition already exists, which is Function
. So identity :: forall t. a t t
when we specialize a
= Function
would be simplified to
forall t. Function t t
or
forall t. (->) t t
or
forall t. t -> t
. And the implementation for that is
instance Category (->) where
identity x = x
In other words, identity
(for Function
) is just a function that returns exactly what it’s given as input.
Now, your error message there is saying that it expected to find that Price
was a Category
, and that didn’t work because there is no identity
definition for Price
. Now it could be that somebody was actually trying to make Price
into a Category
, but the more likely scenario in my opinion is that somebody used identity
where originally a function of Price _ -> Price _
was expected, and now instead of a function being expected, it’s just expecting a single Price _
value. This maybe is from a package having a breaking update in a later version or something. So when you try to pass identity
in now that it’s expecting a single Price _
value, the compiler thinks you’re trying to say that Price
is a Category
and gives you that error.
Any chance you can check around where the error is popping up to see if you are using identity
somewhere that’s not expecting a function (but maybe was expecting a function in an earlier version)?
1 Like
@ntwilson Thanks for answering my question. I will start diagnosing the issue today…