Return-Path: <John.Harrison-request@cl.cam.ac.uk>
Delivery-Date: 
Received: from leopard.cs.byu.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Fri, 10 Jun 1994 13:08:36 +0100
Received: by leopard.cs.byu.edu (1.37.109.8/16.2) id AA29713;
          Fri, 10 Jun 1994 05:57:18 -0600
Sender: info-hol-request@lal.cs.byu.edu
Errors-To: info-hol-request@lal.cs.byu.edu
Precedence: bulk
Received: from dworshak.cs.uidaho.edu by leopard.cs.byu.edu 
          with SMTP (1.37.109.8/16.2) id AA29709;
          Fri, 10 Jun 1994 05:57:02 -0600
Received: from irafs1.ira.uka.de by dworshak.cs.uidaho.edu 
          with SMTP (1.37.109.8/16.2) id AA05979;
          Fri, 10 Jun 1994 04:55:50 -0700
Received: from i80fs2.ira.uka.de (actually i80fs2) by irafs1 with SMTP (PP);
          Fri, 10 Jun 1994 13:51:14 +0200
Received: from ira.uka.de by i80fs2.ira.uka.de id <17682-0@i80fs2.ira.uka.de>;
          Fri, 10 Jun 1994 13:57:31 +0200
To: info-hol@cs.uidaho.edu
Subject: Re: Mutually recursive definitions
Cc: indra@cse.iitkgp.ernet.in
Date: Fri, 10 Jun 1994 13:57:29 +0200
From: schneide <schneide@ira.uka.de>
Message-Id: <"i80fs2.ira.686:10.05.94.11.57.55"@ira.uka.de>


Why not defining a global function evenoddlist that  subsumes 
evenlist and oddlist, i.e. 

evenoddlist even [] = even 
evenoddlist even (CONS h t) =(h => evenoddlist (~even) t | evenoddlist even t

After this you can define

evenlist l = evenoddlist T l
oddlist l = evenoddlist F l

I hope this could help,
Klaus.
