Newsgroups: misc.education,comp.lang.misc,comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!purdue!lerc.nasa.gov!magnus.acs.ohio-state.edu!math.ohio-state.edu!uwm.edu!chi-news.cic.net!simtel!news.sprintlink.net!in1.uu.net!munnari.oz.au!cs.mu.OZ.AU!conway
From: conway@cs.mu.OZ.AU (Thomas Charles CONWAY)
Subject: Re: Wanted: programming language for 9 yr old
Message-ID: <9529611.12190@mulga.cs.mu.OZ.AU>
Organization: Computer Science, University of Melbourne, Australia
References: <43v5qb$sb8@blackice.winternet.com> <44da7v$d0f@stills.pubnix.net> <44lmqs$pap@news.asu.edu> <44rapn$1cr@dsinc.myxa.com> <44rfv4$1qnq@b.stat.purdue.edu> <44rkqq$6ic@dsinc.myxa.com> <9528211.10844@mulga.cs.mu.OZ.AU> <mtcrya01.42.3079034C@scilab <mtcrya01.44.30820D3A@scilab.uct.ac.za> <467j4o$30q@otis.netspace.net.au>
Distribution: inet
Date: Mon, 23 Oct 1995 01:48:52 GMT
Lines: 23
Xref: glinda.oz.cs.cmu.edu comp.lang.misc:23489 comp.lang.prolog:14059

reiter@tornado (Peter Moulder) writes:
	[re Mercury]
>
>Mode declarations are not required (for Prolog-like programs, i.e. with a 
>single source file), but they do form a large part of the compile-time checks
>available.  Of course, the compiler still has access to the mode declarations
>of all the standard predicates for io, list__append/3 and so on, which are 
>used.

Mercury *does* require that all the desired modes of a predicate be
declared. It is the determinism declarations that are optional within
a module. The determinism of the modes of an exported predicate must
be declared, but within a module determinism inference may be relied
upon.  I should point out that you get better error messages if you
declare the determinism of every predicate.

I don't think I wrote any BASIC or Micro-Prolog programs on my Spectrum
that would need to be bigger than one Mercury module. :-)

Thomas
-- 
Thomas Conway                                           conway@cs.mu.oz.au
AD DEUM ET VINUM		     obscure incantation for the day: pr#6
