[mercury-users] list functor style functions
Ralph Becket
rbeck at microsoft.com
Fri Nov 12 21:22:14 AEDT 1999
I may be missing Michael's point, but I wondered why the following wasn't
sufficient for the example problem:
====================================================
:- module sequences.
:- interface.
:- typeclass sequence(S, T) where [
func [] = S,
func [T | S] = S
].
:- type my_list(T).
:- instance sequence(my_list(T), T).
:- implementation.
:- type my_list(T) ---> nil ; cons(T, my_list(T)).
:- instance sequence(my_list(T), T) where [
func([]/0) is my_nil,
func('.'/2) is my_cons
].
:- func my_nil = my_list(T).
my_nil = nil.
:- func my_cons(T, my_list(T)) = my_list(T).
my_cons(X, Xs) = cons(X, Xs).
====================================================
When I compile this, I get
Error: expected type in instance declaration to be a functor with variables
as a
rgs: _1.
Error: expected type in instance declaration to be a functor with variables
as a
rgs: _1.
(this was compiled with -E, which only removes from the error report the
suggestion that one recompile with -E!) What have I done wrong?
Ralph
--------------------------------------------------------------------------
mercury-users mailing list
post: mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the users
mailing list