The Future of Haskell discussion at the Haskell Workshop
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
== 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
> 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
--- 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
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
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
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
(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