[m-users.] Error instance Mercury
tomas at basun.net
Tue Jun 26 22:51:11 AEST 2018
On Tue, 26 Jun 2018 14:23:19 +0200, Maxime Gautin wrote:
> I have a compilation fail with the code I am studying. It is about an instance
> :- type token_list == list(token).
> :- instance parser_state(token_list) where [...]
It's in the manual here
"An ‘instance’ declaration gives a type for each parameter of the type
class. Each of these types must be either a type with no arguments, or
a polymorphic type whose arguments are all type variables. For example
int, list(T), bintree(K, V) and bintree(T, T) are allowed, but T and
list(int) are not. The types in an instance declaration must not be
abstract types which are elsewhere defined as equivalence types."
You can do something like
| :- type token_list ---> token_list(list(token)).
More information about the users