The Future of Haskell discussion at the Haskell Workshop

2003-09-08 Thread nilsson
Dear Haskellers,

This year's Haskell Workshop, held in Uppsala as a part of PLI, traditionally
concluded with a discussion on the future of Haskell. This time an attempt
was made to structure the discussion a little bit by focusing on two specific
topics, and by having each topic being introduced by a short presentation.
The first topic was Haskell records, introduced by Simon Peyton Jones,
Microsoft Research, Cambridge, UK. The second topic was GUI libraries for
Haskell, introduced by Axel Simon, the University of Kent, UK.

While the current Haskell record system, or rather support for labeled fields,
is vastly superior to not having any record facility at all, and appealing
due to its simplicity and not incurring any run-time penalty, most people
would agree that it does leave a lot be desired. However, they would not
necessarily agree on exactly what is to be desired: the design space is quite
large, and it is not easy to evaluate how useful various record features
would be in practice, and if the cost in terms of increased language 
complexity and backwards compatibility issues is warranted.

Unsurprisingly, opinions expressed during the discussion were rather divided.
In the end, it seemed that the fact that the present system, despite its
faults, is simple and has proved to be useful convinced a majority of the
people present that if the system were to be improved, it should only be
rather modest improvements that would not break backward compatibility.
For example, one of the most annoying limitations of the present system is
that record labels have to be distinct. Maybe this restriction could
be lifted without sacrificing compatibility.

Here is how Simon Peyton Jones summarized the discussion:

The conclusion I took away was this

There are undoubted advantages to having better records, but

  (a) they all make the language more complicated

  (b) there are many possible design choices
(not only has/lacks, but also record concatenation,
length vs depth subtyping, and more I'm sure)

  (c) they almost certainly conflict with existing programs

  (d) the existing system is really not too bad

That all argues for the status quo.

I did have a conversation with Peter Thiemann afterwards.  We 
discussed a record system which is an upward compatible extension
of what we have now, though less powerful than the variants I have 
previously proposed.

  * Records are not anonymous.  
  
e.g. {x::Int, y::Bool} is not a type
  
They are declared exactly as now, so that

data T = T { x::Int, y::Bool }

declares a type T.

  * However, you can have more than one record with the same
field name.  So the field selectors are overloaded, much as
with has-predicates

x :: (t has x::a) => t -> a

  * So a function like

f v = v.x + v.y

would get the inferred type

f :: (t has x::a, t has y::a, Num a) => t -> a

 * Also retain Haskell's existing record construction and update
   syntax could be possible.

The GUI library discussion focused on questions such as what exactly
are the desirable properties of such a library. For example, to what
extent is it necessary that applications are able to adopt the look-and-feel
of the platform on which they happen to be running. Related to this was
the question of whether to focus efforts on a Common GUI API (CGA) that
would allow applications to adapt to specific platforms, or whether it
would be sufficient to go for something based on an existing cross-platform
API, such as wxWindows, even if that meant violating certain look-and-feel
aspects on certain platforms, and inability to access platform-specific
functionality.

Axel Simon has promised to e-mail a more complete record of the GUI-part of
the discussion shortly.

All the best,

/Henrik

-- 
Henrik Nilsson
Yale University
Department of Computer Science
[EMAIL PROTECTED]
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


CFP: CLIMA IV - Deadline Extended

2003-09-08 Thread João Alexandre Leite
==
  CALL FOR PAPERS

   CLIMA IV

 Fourth International Workshop on Computational Logic in Multi-Agent Systems

   January 6-7, 2004, Fort Lauderdale, Florida, USA

http://centria.di.fct.unl.pt/~jleite/climaIV/index.htm

 Post-Proceedings will be published in Springer Verlag LNAI

***new*** Submission Deadline: September 26th

   Co-located with the 7th LPNMR and the 8th AIMATH
===

Over recent years, the notion of agency has claimed a major role in defining the 
trends of modern research.
Influencing a broad spectrum of disciplines such as Sociology, Psychology, Philosophy 
and many more, the agent
paradigm virtually invaded every sub-field of Computer Science, not least because of 
the Internet and Robotics.

Multi-agent Systems (MAS) are communities of problem-solving entities that can 
perceive and act upon their
environments to achieve their individual goals as well as joint goals. The work on 
such systems integrates many
technologies and concepts in artificial intelligence and other areas of computing. 
There is a full spectrum of
MAS applications that have been and are being developed; from search engines, 
educational aids to electronic
commerce and trade.

Although commonly implemented by means of imperative languages, mainly for reasons of 
efficiency, the agent
concept has recently increased its influence in the research and development of 
computational logic based
systems.

Computational Logic, by virtue of its nature both in substance and method, provides a 
well-defined, general, and
rigorous framework for systematically studying computation, be it syntax, semantics, 
procedures, or
implementations, environments, tools, and standards.

The purpose of this workshop is to discuss techniques, based on computational logic, 
for representing,
programming and reasoning about multi-agent systems in a formal way. This is clearly a 
major challenge for
computational logic, to deal with real world issues and applications.

Following the workshop on Multi-Agent Systems in Logic Programming affiliated with 
ICLP'99, the first CLIMA
workshop took place in London, UK, affiliated with CL'2000. The 2001 edition of CLIMA, 
took place in Paphos,
Cyprus, affiliated with ICLP'01. CLIMA'02 took place in Copenhagen, Denmark, and was 
affiliated with ICLP'02 and
part of FLOC'02.

We solicit unpublished papers that address formal approaches to multi-agent systems. 
The approaches as well
asbeing formal must make a significant contribution to the practice of multi-agent 
systems. Relevant techniques
include, but are not limited to, the following:

* Nonmonotonic reasoning in MAS
* Planning under incomplete information in MAS
* Logical foundations of MAS
* Usage of abduction in MAS
* Representation of knowledge and belief in MAS
* Knowledge and belief updates in MAS
* Temporal reasoning for MAS
* Theory of argumentation for MAS
* Negotiation and co-operation for MAS
* Communication languages for MAS
* Distributed constraint satisfaction in MAS
* Modal logic approaches to MAS
* Logic based programming languages for MAS
* Distributed theorem proving for MAS
* Logic based implementations of MAS
* Decision theory for MAS
* Logic based agents for the Internet

SUBMISSION INSTRUCTIONS
We welcome and encourage the submission of high quality, original papers, which are 
not simultaneously submitted
for publication elsewhere. Please refer to the workshop web pages for further 
instructions concerning the
submission procedures.

IMPORTANT DATES
* Submission: September 26th, 2003
* Notification of Acceptance: October 31th, 2003
* Final version due: November 28th, 2003
* CLIMA IV: January 6-7th, 2004

PROCEEDINGS
Post-proceedings will be published by Springer-Verlag as a volume of the Lecture Notes 
on Artificial
Intelligence (LNAI) series. Informal proceedings will be available at the workshop and 
online.

PROGRAM COMMITTEE
* Chitta Baral, Arizona State University, USA
* Gerd Brewka, University of Leipzig, Germany
* Jürgen Dix, The University of Manchester, UK
* Thomas Eiter, Vienna University of Technology, Austria
* Klaus Fischer, DFKI, Germany
* Michael Fisher, University of Liverpool, UK
* James Harland, Royal Melbourne Inst. of Tech., Australia
* Katsumi Inoue, Kobe University, Japan
* Gerhard Lakemeyer, Aachen Univ. of Technology, Germany
* João Leite, New University of Lisbon, Portugal
* Yves Lespérance, York University, Canada
* John Jules Ch. Meyer, Univ. of Utrecht, The Netherlands
* Leora Morgenstern, IBM, USA
* Luís Moniz Pereira, New University of Lisbon, Portugal
* Fariba Sadri, Imperial College, UK
* Ken Satoh, National Institute of Informatics, Japan
* Renate Schmidt, The University of Manch

Re: ANNOUNCE: HSQL 1.0 released

2003-09-08 Thread Krasimir Angelov
> It looks interesting. Where can I download and try
> it?

Oops. I forget to post the url.

http://htoolkit.sourceforge.net


__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


Re: ANNOUNCE: HSQL 1.0 released

2003-09-08 Thread Krasimir Angelov

--- Martin Norbäck <[EMAIL PROTECTED]> wrote:
> mån 2003-09-08 klockan 21.21 skrev Krasimir Angelov:
> >  Dear Haskellers
> > 
> >  I am pleased to announce HSQL 1.0. The
> package is
> > intended to give access to PostgresSQL, MySQL and
> ODBC
> > databases. The HSQL is a part of HToolkit project
> but
> > like GIO and Port it can be distributed as
> separate 
> > bundle. 
> 
> >Krasimir
> 
> It looks interesting. Where can I download and try
> it?
> 
> Regards,
> 
>   Martin
> 

> ATTACHMENT part 2 application/pgp-signature
name=signature.asc


__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


ANNOUNCE: HSQL 1.0 released

2003-09-08 Thread Krasimir Angelov
 Dear Haskellers

 I am pleased to announce HSQL 1.0. The package is
intended to give access to PostgresSQL, MySQL and ODBC
databases. The HSQL is a part of HToolkit project but
like GIO and Port it can be distributed as separate 
bundle. 
 This is the first public release but as far as I
know the package is already used in some other
projects. I make this release with hope to makes HSQL 
more useful and more user friendly for other people
working in Haskell.

  What is new?

- The HSQL is separated from GUI part of the old
HToolkit package.
- Improved configure/make build system
- the getSqlValue function from SqlBind type class
is renamed to fromSqlValue. In SqlBind is defined new
function - toSqlValue. The new function converts a
Haskell value to its equivalent string representation
in SQL syntax.
- Improved support for geometric and network types
for PostgreSQL.
- Some bugfixes

 How to build?

$ ./configure --enable-
$ make
$ make install

where  is one of:
   - mysql
   - postgres
   - odbc

It is possible to build library with more than one
backend. Just type:

$ ./configure --enable-postgres --enable-odbc 
--enable-mysql

Cheers
   Krasimir



__
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


RE: Fundep & Datatype Request

2003-09-08 Thread Simon Peyton-Jones
Another tricky one.  There are at least two difficulties.

1.  Consider the simpler function
foo :: Fc Bool b => [b] -> Int
foo (x:xs) = x
Since b must be Int, you might argue that this function is OK, but GHC
rejects it because it unifies the signature type variable b.  This is a
"legitimate" constraint on 'b'.  The question is how to distinguish the
legitimate constraints on b from the illegitimate ones.  In principle,
not too hard -- just "improve" the type signature, but GHC translates
the whole thing to System F, so it really will pass a type parameter for
'b'...   Maybe it can be done, but I feel queasy about it.

2. Suppose we have

  makeF3 i = [MkF2 i, , (undefined :: F2 Bool)]

When type-checking MkF2 it's less obvious that the result will be an (F2
Bool) than it was in your example.  So perhaps type-correctness depends
on the "pushing-types-inwards" idea. Well, ok, that's what I do for
higher-rank types, but we'd need to precisely say what programs are
accepted and what programs are not.



At the moment I'm somewhat resisting making further ad-hoc
"improvements" to GHC's type-inference algorithm, even though it falls
short in various ways, because I keep hoping someone is going to come up
with a simple non-ad-hoc story that will address these various issues in
a more systematic way.

Simon

| -Original Message-
| From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Ashley Yakeley
| Sent: 05 September 2003 01:24
| To: [EMAIL PROTECTED]
| Subject: Fundep & Datatype Request
| 
| OK, this is an issue I have raised before I think, but I don't
remember
| what the opinion on it was. The following doesn't compile with ghc
| -fglasgow-exts (or Hugs -98):
| 
| -- ghc -fglasgow-exts -c TypeLambda.hs
| module TypeLambda where
| {
| class Fc a b | a -> b;
| 
| instance Fc Bool Int;
| 
| data F1 a = forall b. (Fc a b) => MkF1 b;
| 
| makeF1 :: Int -> F1 Bool;
| makeF1 = MkF1;
| 
| getF1 :: F1 Bool -> Int;
| getF1 (MkF1 i) = i;
| 
| data F2 a = MkF2 (forall b. (Fc a b) => b);
| 
| makeF2 :: Int -> F2 Bool;
| makeF2 i = MkF2 i;
| 
| getF2 :: F2 Bool -> Int;
| getF2 (MkF2 i) = i;
| }
| 
| Clearly makeF1 and getF2 are OK. But I claim getF1 and makeF2 should
| compile, since the type inside either an "F1 Bool" or an "F2 Bool"
must
| always be an Int. Instead I get this:
| 
| 
| TypeLambda.hs:14:
| Inferred type is less polymorphic than expected
| Quantified type variable `b' is unified with `Int'
| When checking an existential match that binds
| i :: b
| and whose type is F1 Bool -> Int
| In the definition of `getF1': getF1 (MkF1 i) = i
| 
| TypeLambda.hs:19:
| Cannot unify the type-signature variable `b' with the type `Int'
| Expected type: b
| Inferred type: Int
| In the first argument of `MkF2', namely `i'
| In the definition of `makeF2': makeF2 i = MkF2 i
| 
| 
| So why is this useful? Because you can do some form of type-lambda
with
| it. For instance, you might have some system of collection types:
| 
|   Word8 -->>  UArray Int Word8
|   Word16-->>  UArray Int Word16
|   (a -> b)  -->>  Array Int (a -> b)
| 
| It would be nice to hide the implementation and just expose some
| type-constructor:
| 
|   MyCollection Word8
|   MyCollection Word16
|   MyCollection (a -> b)
| 
| I believe this can't be done currently.
| 
| --
| Ashley Yakeley, Seattle WA
| 
| ___
| Haskell mailing list
| [EMAIL PROTECTED]
| http://www.haskell.org/mailman/listinfo/haskell


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


RE: Haskell for non-Haskell's sake

2003-09-08 Thread John Hughes
On Fri, 5 Sep 2003, Simon Marlow wrote:

> ... Claiming a lock on a file is
> > easy in C (well,
> > it takes 18 lines...), but there's nothing in the standard Haskell
> > libraries that can do it. So I borrowed a little C code from
> > the net, and
> > called it via the FFI.
>
> Locking support is available in the unix package distributed with GHC.
> See:
>
> http://www.haskell.org/ghc/docs/latest/html/unix/System.Posix.IO.html#7
>
>
> Cheers,
>   Simon
>

That'll teach me not just to look in the standard Haskell 98 libraries!
Thanks.

john

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


SVV'03 call for papers

2003-09-08 Thread Abhik Roychoudhury

(Apologies if you receive multiple copies of this message)

SECOND CALL FOR PAPERS

[ Submission deadline: September 15, 2003 ]

***

International Workshop on Software Verification and Validation (SVV 2003)

In Conjunction with 
International Conf. on Logic Programming (ICLP) 2003

Mumbai (India), December 2003

URL: http://www.comp.nus.edu.sg/~abhik/SVV03/index.html

***

-- 
Topics Covered
--- 

The workshop will focus on theoretical techniques, practical methods
as well as case studies for verification of conventional and embedded
software systems. In particular, we welcome papers which describe
combinations of formal and informal reasoning, as well as formal
verification and program analysis techniques. Tool papers and case
studies, which report on advances in verifying large scale programs in
standard languages are particularly sought. The list of topics
include, but are not restricted to:

Tools/environments/case studies for large scale software verification 

Static analysis/Abstract interpretation/Program transformations for 
verification 

Use of model checking and deductive techniques for software verification 

Role of declarative programming languages (such as Prolog) for 
infinite state verification.

Techniques to validate system software (such as compilers) as well as
assembly code/Java byte-code 

Proof techniques for verifying specific classes of software 
(such as object-oriented programs) 

Integrating testing and run-time monitoring with formal techniques 

Validation of UML diagrams, and/or requirement specifications 

Software certification and proof carrying code 

Integration of formal verification into software development projects 


---
Workshop Format
-
The one day workshop will mostly involve talks of peer reviewed
research papers in an informal setting. We plan to have several
break-out sessions apart from the research paper sessions to promote
informal discussions. In addition, there will be an invited talk
(detailed information given below).

-
Submissions Information
--
Regular submissions should be no more than 15 pages. Short papers
(up to 5 pages) describing initial ideas are also welcome. All
submitted papers should be in PS or PDF. Please avoid using zip, gzip,
compress, tar etc. Papers should be submitted via e-mail to
 [EMAIL PROTECTED]

The deadlines are as follows.

Submission deadline: September 15, 2003 
Notification of Acceptance:  October 15, 2003 
Final Version submission:  November 15, 2003 

We plan to publish selected papers from the workshop as Electronic
Notes in Theoretical Computer Science (ENTCS). Note that ENTCS papers
should be at least 10 pages in ENTCS format.

---
Program Committee
--
Krzysztof R. Apt, CWI (Netherlands) and NUS (Singapore). 
Giorgio Delzanno, University of Genova (Italy). 
Maurizio Gabbrielli, University of Bologna (Italy). 
Shriram Krishnamurthi, Brown University (USA). 
Andreas Podelski, Max Planck Institute (Germany). 
C.R. Ramakrishnan, SUNY Stony Brook (USA). 
Wang Yi, Uppsala University (Sweden). 

-
Invited Speaker


Ramesh Bharadwaj, Naval Research Laboratory (USA). 

Talk Title: Rigorous Methods for Software Construction: 
Retrofitting "Engineering" into Software Engineering


--
Organizers

Sandro Etalle, University of Twente, Netherlands. 
Supratik Mukhopadhyay, NASA IV&V and University of West Virginia, USA. 
Abhik Roychoudhury, National University of Singapore (Workshop Co-ordinator). 





___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell