[Haskell-cafe] Problem with compilation on MAC OS X
New machine, latest version of the Haskell Platform for 64 bit Mac OS X. In trying to build a new version of cabal-install and also of Agda I get variants of the same error dist/build/autogen/Paths_Agda.hs:21:13: Not in scope: `catch' any thoughts on what I am doing wrong? I have XCode command line tools installed. Thanks! Simon T. Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Problem with compilation on MAC OS X
Thanks - unfortunately it breaks cabal-install too! S. On 30 May 2013, at 13:28, Artyom Kazak artyom.ka...@gmail.com wrote: Apparently, Agda has been broken by the recent decision to remove 'catch', which had already been deprecated for some time, from Prelude. You can fix the source yourself, or wait for a new release. On May 30, 2013 3:04 PM, Simon Thompson s.j.thomp...@kent.ac.uk wrote: Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Tutorials at Commercial Users of Functional Programming 2013
There's still time to submit a tutorial proposal for Commercial Users of Functional Programming in Boston … http://cufp.org/cufp2013-call-tutorials Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Commercial Users of Functional Programming: Call for tutorials
Commercial Users of Functional Programming Call for tutorials Commercial Users of Functional Programming (CUFP) is an annual meeting co-located with the International Conference on Functional Programming which this year will take place in Boston, MA, USA on 22-24 September 2013. CUFP aims to bridge the gap between academia and users applying functional programming in practice. CUFP provides high-quality practical tutorials covering state-of-the-art techniques and tools for functional programming. We are seeking proposals for half-day tutorials to be presented during the first two days of the meeting, 22 and 23 September, with the main CUFP session on 24 September. Among the suggested topics for tutorials are: - Introductions to functional programming languages: in the past we have had introductions to Clojure, Erlang, F#, Haskell, ML, OCaml, Scala, Scheme and others. - Applying functional programming in particular areas, including the web, high-performance computing, finance. - Tools and techniques supporting state of the art functional programming. Tutorial proposals should address the following points - Title - Abstract (about 100 words) - Goals: by the end of this tutorial you will be able to … - Intended audience: e.g. beginners, those with a working knowledge of X, … - Infrastructure required: For example, - will participants need access to a particular system? - can they be expected to have this on a laptop, or does it need to be provided by the meeting? and should be sent by email to - Francesco Cesarini: france...@erlang-solutions.com - Simon Thompson: s.j.thomp...@kent.ac.uk by 31 March 2013. Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Proving programs
Christopher, there's an introduction to proof for functional programs at http://www.cs.kent.ac.uk/people/staff/sjt/Pubs/ProofChapter.pdf I hope that you find it useful. Kind regards Simon On 1 Jan 2013, at 23:24, Christopher Howard christopher.how...@frigidcode.com wrote: 1. Does this approach need to be adjusted for a functional language, in which computation is (at least idealistically) distinct from control flow? 2. How do we approach this for programs that have an input loop (or recursion)? E.g., I have an application that reads one line for stdin, modifies said line, outputs to stdout, and repeats this process until EOF? Should I be thinking of every iteration as a separate program? Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Why Kleisli composition is not in the Monad signature?
Not sure I really have anything substantial to contribute, but it's certainly true that if you see a - m b as a generalisation of the usual function type, a - b, then return generalises the identity and kleisli generalises function composition. This makes the types pretty memorable (and often the definitions too). Simon On 16 Oct 2012, at 20:14, David Thomas davidleotho...@gmail.com wrote: class Monad m where return :: a - m a kleisli :: (a - m b) - (b - m c) - (a - m c) Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Research Associate in Modelling and Testing using QuickCheck
As a part of the EU-funded project PROWESS we're looking for a postdoctoral research associate for 2 years 11 months to work on modelling and testing of web services, in the context of property-based testing using QuickCheck. PROWESS involves not only Kent, but also the universities of Sheffield and A Coruña, Chalmers University in Gothenburg and the Polytechnic University of Madrid. Industrial participants include Erlang Solutions Ltd, Quviq AB, Interoud and SP, the Technical Research Institute of Sweden. At the core of PROWESS is property-based testing as implemented in the QuickCheck tool, which provides property-based testing (PBT) for Erlang. In PBT, instead of describing a system through a series of unit tests, it is specified by a set of logical properties, which are then tested on randomly generated inputs to the system. For state-based systems, models are described as state machines, and the systems are exercised through randomly generate paths through the machines. This approach has been used very successfully in a number of application areas, most notably in the automotive sector, where QuickCheck models are used to test automotive software written in C for its conformance to the AUTOSAR standard. The Kent team on PROWESS will help to deliver the following results. • A library of common properties for PBT of web services. • Tools and techniques for extraction of specifications and models from existing test suites for web services. • Tools and techniques to present and assess different competing implementations of a specification. • Approaches to dealing with evolution of properties, models and systems. • An approach to assessing the quality of properties by means of mutation of implementations (by analogy with mutation testing). • Mechanisms by which requirements can be related to other artefacts such as properties and models. The successful applicant should have a doctoral qualification in computer science, experience of using functional programming as well as strong core CS sills. They should be able to work independently, and also to liaise effectively with members of the project both at Kent and at other partners. More details about the post, and the application procedure, are at http://www11.i-grasp.com/fe/tpl_kent01.asp?newms=jjid=37073aid=14243 If you have any questions about the position, or would like to discuss it informally, please contact me by email. Simon Thompson Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Two-day Haskell tutorial, Copenhagen, September 13-14
This year CUFP is putting on a series of longer tutorials to introduce functional programming languages in depth, and in particular the organisers are delighted to announce a TWO DAY Haskell tutorial, taught by leading experts and educators Jeremy Gibbons (Oxford) and Simon Marlow (Microsoft Research). This two-day tutorial is designed to introduce you to Haskell without assuming that you know anything about the language in advance, and will introduce you to the underlying ideas and concepts of Haskell as well as giving you hands-on experience of programming in Haskell. So, if you're interested we do hope that you are able to attend, or if not, that you'll pass this information on to colleagues and friends who might be interested. There's more information and registration instructions at http://cufp.org/conference/2012 Hoping to see you there! Duncan Coutts, Simon Thompson, Michael Sperber CUFP tutorials organisers More information … Abstract Pure functional programming is about programming with expressions rather than actions, data rather than control. Many programs are more naturally expressed in this way, and functional programs are often an order of magnitude shorter than equivalent imperative programs - just as programs in traditional high-level languages like C and Java are typically much shorter and clearer than their equivalents in assembly language. Many exciting ideas in mainstream programming arose first in FP, including garbage collection, generics, closures, and list comprehensions. FP is a fertile laboratory for language innovation, and familiarity with FP is good preparation for future developments in programming. In particular, multicore chips and cloud computing architectures are forcing us all into dealing with concurrency, and there is good evidence that the breakthroughs here will come from FP, with its emphasis on immutability and independence of evaluation order. Content This two-day tutorial introduces the essentials of Haskell, a pure lazy functional language with a mature compiler, a wealth of libraries, and an active community. We will focus particularly on concurrent programming - handling multiple interactions at the same time - which is increasingly important in a wide range of applications today, from GUI programming to server-side web development. There will be a balance between lectures and exercises, so that you will be exposed to both the theory and the practice of FP. Day 1 will focus on the basics of FP with Haskell, introducing the concepts necessary to get you writing simple programs, including an introduction to monads. On Day 2 you will get a little taste of the joys of concurrent programming in Haskell. By the end, you will be writing some simple (but real!) Concurrent Haskell programs. We will also cover some of the practical aspects of day-to-day programming in Haskell, such as working with third-party libraries. Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Final CFP: 16th Brazilian Symposium on Programming Languages
CALL FOR PAPERS 16th BRAZILIAN SYMPOSIUM ON PROGRAMMING LANGUAGES Natal, Rio Grande do Norte, Brazil September 24-28, 2012 http://www.cbsoft.dimap.ufrn.br IMPORTANT DATES Paper abstract submission (15 lines): April 27th, 2012 (extended) Full paper submission: May 4th, 2012 (extended) Notification of acceptance: June 4th, 2012 Final papers due: June 29th, 2012 INTRODUCTION The 16th Brazilian Symposium on Programming Languages, SBLP 2012, will be held in Natal, Brazil, on September 24-28, 2012. SBLP provides a venue for researchers and practitioners interested in the fundamental principles and innovations in the design and implementation of programming languages and systems. The symposium will be part of the 3rd Brazilian Conference on Software: Theory and Practice, CBSoft 2012, http://www.cbsoft.dimap.ufrn.br, which will host four traditional, well-established symposia: * XXVI Brazilian Symposium on Software Engineering (SBES) * XVI Brazilian Symposium on Programming Languages (SBLP) * XV Brazilian Symposium on Formal Methods (SBMF) * VI Brazilian Symposium on Components, Software Architecture and Software Reuse (SBCARS) SBLP 2012 invites authors to contribute with technical papers related (but not limited) to: * Program generation and transformation, including domain-specific languages and model-driven development in the context of programming languages. * Programming paradigms and styles, including functional, object-oriented, aspect-oriented, scripting languages, real-time, service-oriented, multithreaded, parallel, and distributed programming. * Formal semantics and theoretical foundations, including denotational, operational, algebraic and categorical. * Program analysis and verification, including type systems, static analysis and abstract interpretation. * Programming language design and implementation, including new programming models, programming language environments, compilation and interpretation techniques. SUBMISSIONS Contributions should be written in Portuguese or English. We solicit papers that should fall into one of two different categories: full papers, with at most 15 pages, or short papers, with at most 5 pages. We encourage the submission of short papers reporting on partial results of on-going master dissertations or doctoral theses. All accepted papers will be published in the conference proceedings distributed in a digital media by the CBSOFT organizers. Full papers submitted in English will be published in a volume of the Lecture Notes in Computer Science (LNCS), by Springer, to be distributed in the conference. For this reason, all papers must be prepared using the LNCS template, available at http://www.springer.com/computer/lncs?SGWID=0-164-6-793341-0. As in previous editions, a journal special issue, with selected papers from accepted contributions, is anticipated. Selected papers from 2003 to 2008 editions of SBLP were published in special issues of the Journal of Universal Computer Science, by Springer. The post-proceedings of SBLP from 2009 to 2011, also with selected papers from the conference proceedings, are being edited as special issues of Science of Computer Programming, published by Elsevier. Submissions should be done using SBLP 2012 installation of the EasyChair conference management system at http://www.easychair.org/conferences/?conf=sblp2012. GENERAL CO-CHAIRS NÈlio Cacho, UFRN Gibeon Aquino, UFRN Martin Musicante, UFRN PROGRAMME CHAIRS Francisco Heron de Carvalho Junior, UFC Luis Soares Barbosa, Univ. do Minho PROGRAMME COMMITTEE * Alberto Pardo, Univ. de La Republica * Alex Garcia, IME * Alvaro Freitas Moreira, UFRGS * AndrÈ Rauber Du Bois, UFPel * Andre Santos, UFPE * Carlos Camarao, UFMG * Christiano Braga, UFF * Fernando Castor Filho, UFPE * Fernando Quint„o Pereira, UFMG * Francisco Heron de Carvalho Junior, UFC (co-chair) * Joao Saraiva, Universidade do Minho * Jo„o F. Ferreira, Teesside University * Jonathan Aldrich, Carnegie Mellon Univ. * Jose Luiz Fiadeiro, Univ. of Leicester * Lucilia Figueiredo, UFOP * Luis Soares Barbosa, Univ. do Minho (co-chair) * Manuel AntÛnio Martins, Univ. de Aveiro * Marcelo A. Maia, UFU * Marcello Bonsangue, Leiden Univ/CWI * Marcelo d'Amorim, UFPE * Marco Tulio Valente, UFMG * Mariza A. S. Bigonha, UFMG * Martin A. Musicante, UFRN * Noemi Rodriguez, PUC-Rio * Paulo Borba, UFPE * Peter Mosses, Swansea University * Qiu Zongyang, Peking University * Rafael Dueire Lins, UFPE * Renato Cerqueira, PUC-Rio * Ricardo Massa, UFPE * Roberto S. Bigonha, UFMG * Roberto Ierusalimschy, PUC-Rio * Sandro Rigo, UNICAMP * Sergio Soares, UFPE * Simon Thompson, Univ. of Kent * Varmo Vene, Univ. de Tartu Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent
[Haskell-cafe] Researcher / Lecturer position at the Univ. of Kent
We're advertising a lectureship at Kent, with a special twist: the candidate will spend their first three years developing as an independent researcher of internationally excellent quality in an area relevant to the School of Computing. In other words it's a research position that morphs into a traditional lectureship, and is designed to be particularly attractive to people at the start of their careers. The functional programmers at Kent would be particularly keen to recruit someone who would work with them! Online application: http://www11.i-grasp.com/fe/tpl_kent01.asp?newms=jjid=36123newlang=1 Closing date: 1/4/12, interviews: 30/4/12 If you have any questions do get in touch. Regards. Simon Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] TFPIE: Trends in Functional Programming in Education 2012
[Apologies for multiple postings, Simon.] CALL FOR PAPERS/PRESENTATIONS TFPIE 2012 International Workshop on Trends in Functional Programming in Education 2012 June 11 2012 University of St Andrews, Scotland http://www.cs.ru.nl/P.Achten/TFPIE_2012/TFPIE_2012_home.html The first International Workshop on Trends in Functional Programming in Education, TFPIE 2012, will be co-located with TFP 2012 at the University of St Andrews in Scotland. The goal of TFPIE is to gather researchers, professors, teachers, and all professionals that use or are interested in the use of functional programming in education. TFPIE aims to be a venue where novel ideas, classroom-tested ideas, and work in progress on the use of functional programming in education are discussed. The one-day workshop will foster a spirit of open discussion by having a review process for publication after the workshop. The program chairs of TFPIE 2012 will screen submissions to ensure that all presentations are within scope and are of interest to participants. Potential presenters are invited to submit an extended abstract (4-6 pages) or an article (up to 16 pages). The authors of all accepted presentations will have their preprints and their slides made available on the workshop's website/wiki. Any visitors to the TFPIE 2012 website/wiki will be able to add comments. This includes presenters who may respond to comments and questions as well as provide pointers to improvements and follow-up work. After the workshop, the program committee will review, using prevailing academic standards, the articles accepted for presentation to select the best for publication in Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and all extended abstracts will not be formally reviewed by the PC. TOPICS OF INTEREST TFPIE 2012 welcomes submissions describing practical techniques used in the classroom, tools used and/or developed, and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP in Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy If you are not sure if your work is appropriate for TFPIE 2012, please contact the PC chairs by e-mail at: tfpie2...@cs.ru.nl . Program Committee Peter Achten, Radboud University Nijmegen Jost Berthold, University of Copenhagen Marc Feeley, University of Montreal Ralf Hinze, University of Oxford Shriram Krishnamurthi, Brown University Michel Mauny, ENSTA Paris Tech James McKinna, UK Marco T. Morazan, Seton Hall University Rinus Plasmeijer, Radboud University Nijmegen Simon Thompson, University of Kent Important Dates May 20submission of abstract or article May 25notification of acceptance June 11 TFPIE July 6submission of formal paper September 10 notification of acceptance October 1 camera-ready paper Venue The University of St Andrews is Scotland's first university and the third oldest in the English-speaking world, founded in 1413. Over six centuries it has established a reputation as one of Europe's leading and most distinctive centers for teaching and research. St Andrews is situated on the east coast of Fife, Scotland, UK. The town is approximately 50 miles north-east of Edinburgh, 14 miles south-east of Dundee, 78 miles south of Aberdeen, and 82 miles east of Glasgow making it easily accessible by any means of transportation. Help on traveling to St Andrews can be found at: http://www.st-andrews.ac.uk/visiting/GettingtoStAndrews/ . Questions? If you have any questions, do not hesitate to contact us at: tfpie2...@cs.ru.nl . Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] SBLP - call for papers
CALL FOR PAPERS 16th BRAZILIAN SYMPOSIUM ON PROGRAMMING LANGUAGES Natal, Rio Grande do Norte, Brazil September 24-28, 2012 http://www.cbsoft.dimap.ufrn.br IMPORTANT DATES Paper abstract submission (15 lines): April 20nd, 2012 Full paper submission: April 27th, 2012 Notification of acceptance: May 28th, 2012 Final papers due: June 29th, 2012 INTRODUCTION The 16th Brazilian Symposium on Programming Languages, SBLP 2012, will be held in Natal, Brazil, on September 24-28, 2012. SBLP provides a venue for researchers and practitioners interested in the fundamental principles and innovations in the design and implementation of programming languages and systems. The symposium will be part of the 3nd Brazilian Conference on Software: Theory and Practice, CBSoft 2012, http://www.cbsoft.dimap.ufrn.br, which will host four traditional, well-established symposia: * XXVI Brazilian Symposium on Software Engineering (SBES) * XVI Brazilian Symposium on Programming Languages (SBLP) * XV Brazilian Symposium on Formal Methods (SBMF) * VI Brazilian Symposium on Components, Software Architecture and Software Reuse (SBCARS) SBLP 2012 invites authors to contribute with technical papers related (but not limited) to: * Program generation and transformation, including domain- specific languages and model-driven development in the context of programming languages. * Programming paradigms and styles, including functional, object-oriented, aspect-oriented, scripting languages, real-time, service-oriented, multithreaded, parallel, and distributed programming. * Formal semantics and theoretical foundations, including denotational, operational, algebraic and categorical. * Program analysis and verification, including type systems, static analysis and abstract interpretation. * Programming language design and implementation, including new programming models, programming language environments, compilation and interpretation techniques. SUBMISSIONS Contributions should be written in Portuguese or English. We solicit papers that should fall into one of two different categories: full papers, with at most 15 pages, or short papers, with at most 5 pages. All papers should be prepared using the SBC template. In particular, we encourage the submission of short papers reporting on partial results of on-going master dissertations or doctoral theses. All accepted papers will be published in the conference proceedings. Submissions should be done using SBLP 2012 installation of the EasyChair conference mangement system at http://www.easychair.org/conferences/?conf=sblp2012. As in previous editions, a journal special issue, with selected papers from accepted contributions, is anticipated. GENERAL CO-CHAIRS Nélio Cacho, UFRN Gibeon Aquino, UFRN Martin Musicante, UFRN PROGRAMME CHAIRS Francisco Heron de Carvalho Junior, UFC Luis Soares Barbosa, Univ. do Minho PROGRAMME COMMITTEE * Alberto Pardo, Univ. de La Republica * Alex Garcia, IME * Alvaro Freitas Moreira, UFRGS * André Rauber Du Bois, UFPel * Andre Santos, UFPE * Carlos Camarao, UFMG * Christiano Braga, UFF * Fernando Castor Filho, UFPE * Fernando Quintão Pereira, UFMG * Francisco Heron de Carvalho Junior, UFC (co-chair) * Joao Saraiva, Universidade do Minho * João F. Ferreira, Teeside University * Jonathan Aldrich, Carnegie Mellon Univ. * Jose Luiz Fiadeiro, Univ. of Leicester * Lucilia Figueiredo, UFOP * Luis Soares Barbosa, Univ. do Minho * Manuel António Martins, Univ. de Aveiro * Marcelo A. Maia, UFU * Marcello Bonsangue, Leiden Univ/CWI * Marcelo d'Amorim, UFPE * Marco Tulio Valente, UFMG * Mariza A. S. Bigonha, UFMG * Martin A. Musicante, UFRN * Noemi Rodriguez, PUC-Rio * Paulo Borba, UFPE * Peter Mosses, Swansea University * Qiu Zongyang, Beijing University * Rafael Dueire Lins, UFPE * Renato Cerqueira, PUC-Rio * Ricardo Massa, UFPE * Roberto S. Bigonha, UFMG * Roberto Ierusalimschy, PUC-Rio * Sandro Rigo, UNICAMP * Sergio Soares, UFPE * Simon Thompson, Univ. of Kent * Varmo Vene, Univ. de Tartu Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] PEPM'12 - second call for participation
ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation http://www.program-transformation.org/PEPM12 January 23-24, 2012. Philadelphia, PA, USA (co-located with POPL'12) Second Call For Participation Online registration is open at https://regmaster3.com/2012conf/POPL12/register.php Early registration deadline is December 24, 2011 Program is now available http://www.program-transformation.org/PEPM12/Program The PEPM Symposium/Workshop series brings together researchers and practitioners working in the broad area of program transformation, which spans from refactoring, partial evaluation, supercompilation, fusion and other metaprogramming to model-driven development, program analyses including termination, inductive programming, program generation and applications of machine learning and probabilistic search. PEPM focuses on techniques, supporting theory, tools, and applications of the analysis and manipulation of programs. In addition to the presentations of regular research papers, the PEPM program includes tool demonstrations and `short paper' presentations of exciting if not fully polished research. PEPM has established a Best Paper award. The winner will be announced at the workshop. INVITED TALKS Compiling Math to High Performance Code Markus Pueschel (ETH Zuerich, Switzerland) http://www.inf.ethz.ch/~markusp/index.html Specification and verification of meta-programs Martin Berger (University of Sussex, UK) http://www.informatics.sussex.ac.uk/users/mfb21/ VENUE The conference is co-located with POPL and will be held at the Sheraton Society Hill Hotel in Philadelphia's historic district. For hotel rate details and booking please see the POPL webpage: http://www.cse.psu.edu/popl/12/ Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] PEPM'12 Call for participation
ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation http://www.program-transformation.org/PEPM12 January 23-24, 2012. Philadelphia, PA, USA (co-located with POPL'12) Call For Participation Online registration is open at https://regmaster3.com/2012conf/POPL12/register.php Early registration deadline is December 24, 2011 The PEPM Symposium/Workshop series brings together researchers and practitioners working in the broad area of program transformation, which spans from refactoring, partial evaluation, supercompilation, fusion and other metaprogramming to model-driven development, program analyses including termination, inductive programming, program generation and applications of machine learning and probabilistic search. PEPM focuses on techniques, supporting theory, tools, and applications of the analysis and manipulation of programs. In addition to the presentations of regular research papers, the PEPM program includes tool demonstrations and `short paper' presentations of exciting if not fully polished research. PEPM has established a Best Paper award. The winner will be announced at the workshop. INVITED TALKS Compiling Math to High Performance Code Markus Pueschel (ETH Zuerich, Switzerland) http://www.inf.ethz.ch/~markusp/index.html Specification and verification of meta-programs Martin Berger (University of Sussex, UK) http://www.informatics.sussex.ac.uk/users/mfb21/ ACCEPTED PAPERS Regular research papers: Naoki Kobayashi, Kazutaka Matsuda and Ayumi Shinohara. Functional Programs as Compressed Data Kazutaka Matsuda, Kazuhiro Inaba and Keisuke Nakano. Polynomial-Time Inverse Computation for Accumulative Functions with Multiple Data Traversals Dana N. Xu. Hybrid Contract Checking via Symbolic Simplification Susumu Katayama. An Analytical Inductive Functional Programming System that Avoids Unintended Programs Roberto Giacobazzi, Neil Jones and Isabella Mastroeni. Obfuscation by Partial Evaluation of Distorted Interpreters Michael Gorbovitski, Yanhong A. Liu, Scott Stoller and Tom Rothamel. Composing Transformations for Instrumentation and Optimization Elvira Albert, Jesus Correas Fernandez, German Puebla and Guillermo Roman-Diez. Incremental Resource Usage Analysis Takumi Goto and Isao Sasano. An approach to completing variable names for implicitly typed functional languages Martin Hirzel and Bugra Gedik. Streams that Compose using Macros that Oblige Vlad Ureche, Tiark Rompf, Arvind Sujeeth, Hassan Chafi and Martin Odersky. StagedSAC: A Case Study in Performance-Oriented DSL Development Markus Degen, Peter Thiemann and Stefan Wehr. The Interaction of Contracts and Laziness Surinder Kumar Jain, Chenyi Zhang and Bernhard Scholz. Translating Flowcharts to Non-Deterministic Languages Francisco Javier Lopez-Fraguas, Enrique Martin-Martin and Juan Rodriguez-Hortala. Well-typed Narrowing with Extra Variables in Functional-Logic Programming Geoff Hamilton and Neil Jones. Superlinear Speedup by Distillation: A Semantic Basis Short papers: Jacques Carette and Aaron Stump. Towards Typing for Small-Step Direct Reflection Janis Voigtlaender. Ideas for Connecting Inductive Program Synthesis and Bidirectionalization Tool demonstration papers: Edvard K. Karlsen, Einar W. Hoest and Bjarte M. Oestvold. Finding and fixing Java naming bugs with the Lancelot Eclipse plugin Adriaan Moors, Tiark Rompf, Philipp Haller and Martin Odersky. Scala-Virtualized Elvira Albert, Puri Arenas, Samir Genaim, Miguel Gomez-Zamalloa and German Puebla. COSTABS: A Cost and Termination Analyzer for ABS Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] PEPM'12 Deadline Extension
. Regular research papers must not exceed 10 pages in ACM Proceedings style. Short papers are up to 4 pages in ACM Proceedings style. Authors of tool demonstration proposals are expected to present a live demonstration of the described tool at the workshop (tool papers should include an additional appendix of up to 6 extra pages giving the outline, screenshots, examples, etc. to indicate the content of the proposed live demo at the workshop). Important Dates - Paper submission: Sunday, October 16, 2011, 23:59, GMT - Author notification: Tue, November 8, 2011 - Workshop: Mon-Tue, January 23-24, 2012 Invited Speakers - Markus Pueschel (ETH Zurich, Switzerland) - Martin Berger (University of Sussex, UK) Program Chairs - Oleg Kiselyov (Monterey, CA, USA) - Simon Thompson (University of Kent, UK) Program Committee Members - Emilie Balland (INRIA, France) - Ewen Denney (NASA Ames Research Center, USA) - Martin Erwig (Oregon State University, USA) - Sebastian Fischer (National Institute of Informatics, Japan) - Lidia Fuentes (Universidad de Malaga, Spain) - John Gallagher (Roskilde University, Denmark and IMDEA Software, Spain) - Dave Herman (Mozilla Research, USA) - Stefan Holdermans (Vector Fabrics, the Netherlands) - Christian Kaestner (University of Marburg, Germany) - Emanuel Kitzelmann (International Computer Science Institute, USA) - Andrei Klimov (Keldysh Institute of Applied Mathematics, Russian Academy of Sciences) - Shin-Cheng Mu (Academia Sinica, Taiwan) - Alberto Pardo (Universidad de la Repu'blica, Uruguay) - Kostis Sagonas (Uppsala University, Sweden and National Technical University of Athens, Greece) - Anthony M. Sloane (Macquarie University, Australia) - Armando Solar-Lezama (MIT, USA) - Aaron Stump (The University of Iowa, USA) - Kohei Suenaga (University of Kyoto, Japan) - Eric Van Wyk (University of Minnesota, USA) - Kwangkeun Yi (Seoul National University, Korea) Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thomp...@kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Proving correctness
I did some work years ago about giving a predicate logic treatment of Haskell, based on earlier work for Miranda, and formalised some proofs based on this in Isabelle. Here are the links: Logic for Miranda, revisited [from Formal Aspects of Computing, 1995] http://www.cs.kent.ac.uk/pubs/1995/63/index.html Formulating Haskell [from Functional Programming, Glasgow 1992] http://www.cs.kent.ac.uk/pubs/1992/123/index.html Miranda in Isabelle (with Steve Hill) [from Isabelle Workshop, 1995] http://www.cs.kent.ac.uk/pubs/1995/209/index.html Regards, Simon On 11 Feb 2011, at 11:06, C K Kashyap wrote: Hi Folks, I've come across this a few times - In Haskell, once can prove the correctness of the code - Is this true? I know that static typing and strong typing of Haskell eliminate a whole class of problems - is that related to the proving correctness? Is it about Quickcheck - if so, how is it different from having test sutites in projects using mainstream languages? Regards, Kashyap ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] SBLP 2011 - call for papers
SBLP 2011: Call For Papers 15th Brazilian Symposium on Programming Languages Sao Paulo, Brazil September 26-30, 2010 http://www.each.usp.br/cbsoft2011/ IMPORTANT DATES Paper abstract submission (15 lines): April 22nd, 2011 Full paper submission: April 29th, 2011 Notification of acceptance: May 30th, 2011 Final papers due: July 29th, 2011 INVITED SPEAKERS Gary T. Leavens, Univ. of Central Florida Jose Luis Fiadeiro, Univ. of Leicester INTRODUCTION The 15th Brazilian Symposium on Programming Languages, SBLP 2011, will be held in Sao Paulo, Brazil, between September 26th and 30th, 2011. SBLP provides a venue for researchers and practitioners interested in the fundamental principles and innovations in the design and implementation of programming languages and systems. The symposium will be part of the 2nd Brazilian Conference on Software: Theory and Practice, CBSoft 2011, http://www.each.usp.br/cbsoft2011/, which will host four well-established Brazilian symposia: * XXV Brazilian Symposium on Software Engineering (SBES) * XV Brazilian Symposium on Programming Languages (SBLP) * XIV Brazilian Symposium on Formal Methods (SBMF) * V Brazilian Symposium on Components, Software Architecture and Software Reuse (SBCARS) SBLP 2011 invites authors to contribute with technical papers related (but not limited) to: * Program generation and transformation, including domain-specific languages and model-driven development in the context of programming languages. * Programming paradigms and styles, including functional, object-oriented, aspect-oriented, scripting languages, real-time, service-oriented, multithreaded, parallel, and distributed programming. * Formal semantics and theoretical foundations, including denotational, operational, algebraic and categorical approaches. * Program analysis and verification, including type systems, static analysis and abstract interpretation. * Programming language design and implementation, including new programming models, programming language environments, compilation and interpretation techniques. SUBMISSIONS Submissions should be done using SBLP 2011 installation of the EasyChair conference management system at http://www.easychair.org/conferences/?conf=sblp2011. Contributions should be written in Portuguese or English. We solicit papers that should fall into one of two different categories: full papers, with at most 15 pages, or short papers, with at most 5 pages. All papers should be prepared using the Easychair template. (http://www.easychair.org/easychair.zip) In particular, we encourage the submission of short papers reporting on master dissertations or doctoral theses at early stages of their development. All accepted papers will be published in the conference proceedings. As in previous editions, a journal special issue, with selected papers from accepted contributions, is anticipated. From 2003 to 2008 there were special issues of the Journal of Universal Computer Science, published by Springer, with the post-proceedings of SBLP. The post-proceedings of SBLP 2009 and 2010 are being edited as special issues of Science of Computer Programming, published by Elsevier. GENERAL CO-CHAIRS Denise Stringhini FCI, Mackenzie Alfredo Goldman IME, USP PROGRAMME CHAIRS Christiano Braga, UFF Jose Luiz Fiadeiro, Univ. of Leicester PROGRAMME COMMITTEE * Alberto Pardo, Univ. de La Republica * Alex Garcia, IME * Alvaro Freitas Moreira, UFRGS (TBC) * Andre Santos, UFPE * Artur Boronat, Univ. of Leicester * Carlos Camarao, UFMG * Christiano Braga, UFF (co-chair) * Edward Hermann Haeusler, PUC-Rio (TBC) * Fernando Castor Filho, UFPE * Fernando Pereira, UFMG * Francisco Heron de Carvalho Junior, UFC (TBC) * Giuseppe Castagna, Paris 7 (TBC) * Jens Palsberg, UCLA * Joao Saraiva, Universidade do Minho * Johan Jeuring, Utrecht Univ. * Jonathan Aldrich, Carnegie Mellon Univ. * Jose Luiz Fiadeiro, Univ. of Leicester (co-chair) * Lucilia Figueiredo, UFOP * Luis Soares Barbosa, Univ. do Minho * Marcelo A. Maia, UFU * Marcelo d'Amorim, UFPE * Marco Tulio Valente, UFMG * Mariza A. S. Bigonha, UFMG * Martin A. Musicante, UFRN * Noemi Rodriguez, PUC-Rio * Paulo Borba, UFPE (TBC) * Peter Mosses, Swansea University * Renato Cerqueira, PUC-Rio * Ricardo Massa, UFPE * Roberto S. Bigonha, UFMG (TBC) * Roberto Ierusalimschy, PUC-Rio * Sandro Rigo, UNICAMP * Sergio Soares, UFPE (TBC) * Sergiu Dascalu, Univ. of Nevada * Simon Thompson, Univ. of Kent * Sophia Drossopoulou, Imperial College (TBC) * Varmo Vene, Univ. de Tartu (TBC) * Vladimir Di Iorio, UFV (TBC)___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Books for review in the journal of functional programming
Just updated: list of books for review in the journal of functional programming, available here: http://www.cs.kent.ac.uk/people/staff/sjt/JFP/available.html Regards Simon T.___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Pugs with GHC 6.12
Has anyone successfully compiled Pugs with GHC 6.12? The Pugs page suggests that it compiles, but it falls to link (and therefore build) when I try it. Thanks! Simon T.___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANNOUNCE: dbus-core 0.6 and dbus-client 0.2
Hi John, Very nice work! As it happens, Dafydd Harries and I wrote another native implementation of the D-Bus protocol, but yours is much more complete, and the documentation/commentary is ace. A refreshing change from the daily pain of libdbus and dbus-glib... :-) I'm looking at modifying Bustle (which draws sequence diagrams of D-Bus traffic; http://www.willthompson.co.uk/bustle/) to log raw D-Bus messages to a pcap file, rather than the current custom text format that includes just the information from the message the UI needs alongside a timestamp. Then the UI would read the pcap file, and feed the data through a D-Bus parser before processing it further. Now that there's a decent D-Bus implementation available, it seems like a good time to have a crack at this. However, I can't find a way to feed a bytestring to dbus-core and get back a ReceivedMessage. Is this deliberately not exposed? While it's obviously not useful in general, it would be very useful for Bustle. (The alternative is to construct a fake connection to myself and feed messages down it, I guess.) Also, the Haskell bit of Bustle is licensed under the LGPL (v2.1 or later), but dbus-{core,client} are under the GPL v3. Could you be convinced to reconsider the licensing of your packages? D-Bus is often used to allow free and non-free applications to play nicely together, letting free software be used in situations where it would otherwise be passed over; while I for one don't plan to write any non-free D-Bus applications in Haskell any time soon, it'd be nice not to write Haskell off for such applications. -- Will ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANN: attempt-0.0.0
On Sun, Oct 25, 2009 at 4:51 PM, Michael Snoyman mich...@snoyman.com wrote: Comments are most welcome. I would like this to be a suitable replacement for the ubiquitous Maybe, (Either String) and ad-hoc Result data types so often used to report a failure. I'd be very happy to improve the package for the general community. I haven't actually tried writing code with this, just read the api docs. The api makes a lot of sense to me. I'm a Python/Ruby guy. I see Haskell as short like Python, almost fast like C. Your attempt monad thing _makes_ _sense_ to me. One little nit I guess. Python had string as exception for awhile, now they discourage that. There seems to be a historical pattern where the right way to throw exceptions changes from throwing strings to throwing real exception objects. Would it be possible to skip the string one here? Are extensible exceptions too cumbersome for some cases? -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Time for a new logo?
On Tue, Dec 16, 2008 at 9:47 PM, Jeff Wheeler j...@nokrev.com wrote: [1]: http://media.nokrev.com/junk/haskell-logos/logo1.png [2]: http://media.nokrev.com/junk/haskell-logos/logo2.png Oops, I meant to post on list. If you play with the angles and vary the stroke thicknesses you'll probably get a friendlier look, vs. the military/airline look these have now. The first '' doesn't have to be the same thickness as the lambda. Just another $0.02 us. Thanks for running with it. Those look like I imagined. What I like about the design is anybody can draw it in 5 strokes and it's unmistakably what it is. Sharpie, pencil, even spray paint all work. You could make your own hat or t-shirt and wear it to an important event, or a wedding. You could tag a rival cube farm wall to declare some kind of office war. X monad could have a variant of this logo too. X= (That's how I originally thought of it, just was too lazy to post it anywhere. Sorry about that.) -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Time for a new logo?
My $0.02 us: Apologies for ascii art, and hopefully gmail doesn't munge this: \\ \\ \\ \\ \| \\ \\ --- \\ \\ // / \ // / \ \| // / /\\ --- // / / \\ -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] ANN: bustle-0.1, a D-Bus activity charting tool
Hi, For the (probably small) set of people who are interested both in D-Bus and in Haskell, I'm pleased to announce the first release of Bustle, a tool to show diagrams of D-Bus traffic for profiling purposes. It consists of a small C executable to log traffic, and a Gtk+ application which draws diagrams using Cairo. There's no single web page for it yet. http://resiak.livejournal.com/59590.html has slightly more information and context, the release is at http://people.collabora.co.uk/~wjt/bustle/releases/bustle-0.1.tar.gz and the source at git://git.collabora.co.uk/git/user/wjt/bustle.git . Unfortunately, it's not on Hackage, as I haven't written the necessary glue to get Cabal to compile the C executable, but I hope to have time to work on getting Cabal to invoke make appropriately for the next release. Thanks, -- Will signature.asc Description: OpenPGP digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] The Gtk Clutter API
http://www.clutter-project.org/ What is the degree-of-difficulty for creating Haskell bindings for Clutter? Is it simple to extend gtk2hs to cover it? Or has it been done and I just don't see it? Thanks. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Hmm, what license to use?
On Wed, Oct 1, 2008 at 4:00 PM, Don Stewart [EMAIL PROTECTED] wrote: And keep dividing our compiler teams' efforts, while single-implementation languages conquer :) Seems like Haskell has a pretty clear story about which is the right implementation for general purpose use. I don't see a Scheme problem here. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] New Category Theory Intros
These category theory intros were new to me. Thought others here might care. http://golem.ph.utexas.edu/category/2008/08/new_structures_for_physics_i.html -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: [Haskell] Another First course in Haskell
On Sat, Aug 23, 2008 at 8:41 AM, Johannes Waldmann [EMAIL PROTECTED] wrote: (*) that's the main problem I see with Hutton's book http://www.cs.nott.ac.uk/~gmh/book.htmlhttp://www.cs.nott.ac.uk/%7Egmh/book.html: it has Declaring types and classes as chapter 10 (of 13 total). I think that's way off - and it leaves readers (students) with the impression that declarative programming basically deals with (functions on) lists. This may have been true in the 70s/80s (LISP, Prolog), but it certainly shouldn't be true today. Recall the proverb Get your data structures correct first, and the rest of the program will write itself. (David Jones, cited in John Bentley: More Programming Pearls) I think this is independent of language and paradigm. If functions on lists isn't the thing, what is the thing? Data structures isn't a very satisfactory answer for a n00b like me, because it doesn't capture Haskell's distinctive. I've had this same sense, but in a vague newbie way. This also seems to reflect a growing dissatisfaction with the prelude. Back in the day lazy lists were the thing and the Prelude seems to largely reflect that. Now it's something else I can't possibly articulate. But I can definitely see it trying to replace a significant amount of prelude functionality. Witness that nobody loves strings anymore because ByteStrings are cooler. The stream/fusion lists are way cooler than the stock lists. etc. Or I have no idea what I'm talking about. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] BLAS Solve Example
On Wed, Jul 23, 2008 at 2:12 AM, Alberto Ruiz [EMAIL PROTECTED] wrote: $ ghci solve.hs *Main sol 3 | [-5.511e-2,0.3,0.2776] I was hoping for rational solutions. If I were a true jedi master I'd write my own solver, which might be the right thing to do. All I know so far is gauss' method. Probably I'd learn something implementing the back substitution. hmm Thanks. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] ANN: Hayoo! beta 0.2
On Wed, Jul 23, 2008 at 5:04 AM, Timo B. Hübel [EMAIL PROTECTED] wrote: Unfortunately we had to drop the direct links to the source code, as the documentation on Hackage is currently generated without source code. But as soon as this changes, we will include these links again. Someone is working on hscolors for hackage? (Oh how hard that would rock.) -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] BLAS Solve Example
I'm stuck on something that I thought would be easy. I have a matrix and a vector. module Main where import Data.Vector.Dense import Data.Matrix.Dense import BLAS.Matrix.Solve m = listMatrix (2, 3) ([1, 2, 3, 4, 5, 6]::[Double]) v = listVector 2 ([1, 2]::[Double]) main = do ??? Can I use one of the haskell libraries to solve that system? My goal is to automate some tedium on small exercises from the Linear Algebra text by Jim Heffron. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Haskell Related Reading
I have a trip coming up and might have some reading time. I was hoping to get through some of the classics, bananas and lenses, the essence, etc. So I have a few questions: Bananas and lenses et. al. uses some notation that I don't understand right out of the gate. Is there a good primer on whatever that brand of double bars and arrows means? The essense of functional programming looks good, I could understand it when I skimmed it but can I print it out on US letter? The PDF at citeseer was aligned badly. (Essece seemed like a fabulous intro or chapter 2 on getting used to monads. Better than most stuff on the web. Funny that...) I'm also interested in FRP as it might relate to web programming. Anyone have a recommendation? -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Literal programming in Haskell with rst-literals
2008/6/23 Abhay Parvate [EMAIL PROTECTED]: Hello, You might already know this, but in case you don't: there is another literate style: I had trouble finding the docs on this, as I expected them to be in the ghc user guide. For the record, the relevant docs are in the h98 report: http://www.haskell.org/onlinereport/literate.html And the wiki: http://www.haskell.org/haskellwiki/Literate_programming -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Announce: Fortress talk in New York City
2008/6/13 Jeff Polakow [EMAIL PROTECTED]: There will be a talk on Fortress ( a new OO/Functional language from Sun) on Wednesday June 25 at 6:30pm in Manhattan. Sounds interesting. Any plans to post video? -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] cabal-install failure
Cabal-install is looking good. It now, for the record, has only two deps outside of Cabal-1.4. I installed cabal-install-0.5 on ubuntu with the haskell.org linux binary for ghc 6.8.2. I then tried cabal-install yi Got this output: ... many successful installs ... Registering vty-3.0.1... Reading package info from dist/installed-pkg-config ... done. Saving old package config file... done. Writing new package config file... done. Downloading yi-0.3... [1 of 1] Compiling Main ( Setup.hs, dist/setup/Main.o ) Setup.hs:9:0: Warning: Deprecated use of `showPackageId' (imported from Distribution.Simple, but defined in Distribution.Package): use the Text class instead Linking dist/setup/setup ... Warning: defaultUserHooks in Setup script is deprecated. Configuring yi-0.3... Warning: Instead of 'ghc-options: -DDYNAMIC -DFRONTEND_VTY' use 'cpp-options: -DDYNAMIC -DFRONTEND_VTY' setup: alex version =2.0.1 3 is required but it could not be found. cabal: Error: some packages failed to install: yi-0.3 failed during the configure step. The exception was: exit: ExitFailure 1 Is this a cabal problem of package problem? I would have expected it to fail immediately instead of discover this problem so far into process. Thanks. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: cabal and platform-independent haskell installation management (again) (Re: Re: Ubuntu and ghc)
On Wed, Jun 4, 2008 at 7:48 PM, Duncan Coutts [EMAIL PROTECTED] wrote: On Wed, 2008-06-04 at 17:22 +0200, Achim Schneider wrote: The question, IMHO, seems to be How would a package manager for a posix-compilant kinetic look like? http://nixos.org/index.html How well does that coexist with other OS's? Could I have it manage only specific applications in it's store and trust the OS for the rest? -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: cabal and platform-independent haskell installation management (again) (Re: [Haskell-cafe] Re: Ubuntu and ghc)
On Wed, Jun 4, 2008 at 10:14 AM, Claus Reinke [EMAIL PROTECTED] wrote: - it isn't sufficient to worry about installation management, one has to worry about integration, lifetime and uninstall management as well. in short, maintain the dependency graphs over any of install/upgrade/uninstall. It's sufficient to worry about the problem at hand. Everything you've mentioned can be done incrementally once the depsolver is happy. After that it's quite likely that the set of people who care about lifetimes and integration stuff will intersect with the people who want to work on said stuff. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] [ANNOUNCE] git-darcs-import 0.1
On Sun, Jun 1, 2008 at 2:44 PM, Bertram Felgenhauer [EMAIL PROTECTED] wrote: Hi, I'm pleased to announce yet another tool for importing darcs repositories to git. Unlike darcs2git [1] and darcs-to-git [2], it's written in Haskell, on top of the darcs2 source code. The result is a much faster program - it can convert the complete ghc 6.9 branch (without libraries) in less than 15 minutes on my slightly dated machine (Athlon XP 2500+), which is quite fast [3]. Incremental updates work, too. What's the appeal of this? I personally love git, but I thought all the cool kids at this school used darcs and that was that. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] Rewrite class with fundeps in pure h98?
I thought that I should be able to write something like the toHtml function below with pure H98, but when I went to write it I ended up needing fundeps. Is there a way to express this without using any extensions? The idea was to take a remotely Dom-like tree and flatten it into a string, but not require any particular string type. Mostly I'm ripping off HStringTemplate for the fun of it. {-# OPTIONS -fglasgow-exts #-} module Control.WebWidget where import Data.Monoid import Data.String data (IsString s, Monoid s) = Dom s = Element s [Attr s] [Dom s] | Text s data (IsString s, Monoid s) = Attr s = Attr s s class (Monoid s, IsString s) = HTML d s | d - s where toHtml :: d - s instance (Monoid s, IsString s) = HTML (Dom s) s where toHtml (Element name attrs children) = mconcat [ fromString , name, mconcat $ map toHtml attrs, fromString , mconcat $ map toHtml children, fromString /, name, fromString ] toHtml (Text s) = s instance (Monoid s, IsString s) = HTML (Attr s) s where toHtml (Attr key value) = mconcat [ fromString ', key, fromString '=', value, fromString ' ] -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Damnit, we need a CPAN.
On Thu, May 29, 2008 at 11:47 AM, Neil Mitchell [EMAIL PROTECTED] wrote: , a cabal-inst that can install from darcs (or at least from a local directory) Yes, that would be lovely! While we're on the subject, why does searchpath get as little attention as it does? It seems to work reasonably well for HAppS. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Damnit, we need a CPAN.
On Thu, May 29, 2008 at 4:31 PM, Thomas Hartman [EMAIL PROTECTED] wrote: I've been playing a lot with searchpath lately, for doing happs quickstart installation as described on happs.org. Searchpath works great when it works, which usually means -- when the module map file is up to date and pointing everywhere to the right place. When the module map file is out of date though, the error messages for missing dependencies that you would get from searchpath are not as good as the error messages you'd get from a cabal configure. Makes me wonder if searchpath and a good module map file wouldn't be a good way to bootstrap cabal-install. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] So how do people pronounce 'cabal' around here?
2008/5/28 Clifford Beshers [EMAIL PROTECTED]: But if you say it that way, you get kicked out of the cabal. I thought the first rule was There is no cabal. Oh wait, that's Debian. Oh wait... aa! -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Re: [Haskell-cafe] Aren't type system extensions fun? [Further analysis]
On Tue, May 27, 2008 at 3:40 PM, Kim-Ee Yeoh [EMAIL PROTECTED] wrote: Let's fill in the type variable: (x - x) - (Char, Bool) == forall x. (x - x) - (Char, Bool) == x_t - (x - x) - (Char, Bool), where x_t is the hidden type-variable, not unlike the reader monad. As you've pointed out, callER chooses x_t, say Int when passing in (+1) :: Int - Int, which obviously would break \f - (f 'J', f True). What we want is the callEE to choose x_t since callEE needs to instantiate x_t to Char and Bool. What we want is (x_t - x - x) - (Char, Bool). But that's just (forall x. x - x) - (Char, Bool). Nice. That's the first time any of this really made sense to me. Is it possible to construct valid argument for that function? -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] GHC predictability
On Tue, May 13, 2008 at 2:20 AM, Don Stewart [EMAIL PROTECTED] wrote: Note the use of strict pairs. Key to ensuring the accumulators end up in registers.The performance difference here is due to fold (and all left folds) not fusing in normal build/foldr fusion. The vector version runs about the same speed as unoptimsed C. These tricks going into Real World Haskell? When you say someone needs to get familiar with the STG paper it scares me (a beginner) off a little, an I've been making an effort to approach the papers. I could barely understand the Fusion one and getting familiar with compiler internals sounds like something I'd not be ready for. Probably if I really looked at ghc-core I'd be pleasantly surprised but I'm totally biased against even looking. Gcc is hard to read, thus ghc is also. So while you are right about all this when you say it, I think your goal is to persuade. RWH has some of the best practical prose I've read yet. Well done there. Hopefully chapter 26 will be crammed full of this stuff? -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] I am new to haskell
On Thu, May 8, 2008 at 2:59 AM, Benjamin L. Russell [EMAIL PROTECTED] wrote: * Kees Doets and Jan van Eijck: The Haskell Road to Logic, Maths and Programming, As someone approaching haskell with very rusty math skills, this book has been invaluable. My haskell skills are (mostly) beyond what the text is covering, but I'm dutifully working through the math problems as doing it (partway through chapter 4 now, yay!) has sharpened my thinking already. The end result is that I can already sort of read some of the Haskell research papers like the Fusion one. Also, Jan van Eijck is pretty responsive and untangled my mind from time to time. -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: Interesting critique of OCaml
2008/5/8 Donnie Jones [EMAIL PROTECTED]: I would be interested to see an article on Haskell in the same light as this Ocaml article, aka a constructive criticism of Haskell. http://www.drmaciver.com/2008/02/tell-us-why-your-language-sucks/ -- Darrin ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: HFuse: ls fails in HelloFS
I just merged my work with Taru Karttunen's; you probably want to % darcs get http://code.haskell.org/hfuse/ The API is a tad different to the one in my old repository; I had some kind of pointless MVar state threading in my branch which I wrote on a whim but which isn't particularly useful, so I left it out. Taru has ByteString-ized reading from files, which is a win. Currently the module's name is HFuse. Presumably it really belongs under System somewhere; System.Posix.Fuse maybe? What do folks think? Are there any guidelines for picking a namespace? -- Will signature.asc Description: OpenPGP digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] HFuse: ls fails in HelloFS
On 15/03/08 03:10, Austin Seipp wrote: I've tested it on 6.8 and it works fine (Will has 6.6 I believe,) and the HelloFS example should work, but it is still under development (notably I believe him mentioning that the BindFS example has a deadlock issue at the moment.) Testing out that version might yield better results. (I recently fixed a couple of deadlocks, but not in that branch yet.) I would recommend contacting him on the matter, since he seems to be the only person in this project currently. Sorry I couldn't have been more help. Taru Karttunen has been doing some work on it recently, too. I'm hoping to merge my work with his at darcs.haskell.org/hfuse in the next few days. -- Will signature.asc Description: OpenPGP digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: [Haskell-cafe] Re: New slogan for haskell.org
On Sat, Oct 06, 2007 at 01:26:18PM -0500, Alex Tarkovsky wrote: ...and the silliness continues: In which case: http://pics.livejournal.com/resiak/pic/00019kx6/ Will signature.asc Description: Digital signature ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Representing cyclic data structures efficiently in Haskell
From reading your message, it seems you want a graph library of sorts. The important bit is 'of sorts', unfortunately! Most graph libraries I've seen to date (although I must admit that they have been written in C and C++, including one I perpetrated personally) don't really work that well for circuits because, for anything other than trivially simple components, the connections between nodes need to be labelled. A component representing something simple like (say) an 'and' gate would be easy enough to represent as a node of an ordinary directed graph. In such a case, an incoming arrow would always be an input of the gate, and an outgoing arrow would always be the output. I need to be able to represent more complex components, up to and including the complexity of things like CPUs, where you might have lots and lots of inputs and outputs with substantially different meanings. In the case of a CPU, it would never be acceptable to (for example) swap a chip select output for an address or data line. This makes me think that an off-the-shelf graph library won't quite be what I'm after, so I will almost certainly need to write the code. What I'm more interested in at the moment is a view on the best kinds of approach that might be appropriate. I'd considered something like embedding the type in the IO monad, with links between components implemented as IORefs, but I'd really prefer something cleaner (pure functional). If the code ends up horribly complicated in order to get decent performance, I might as well fold and use C++ instead. I'm currently wondering about going for an adjacency list approach (as used by most graph libraries), with the tuples in the adjacency list extended to include input/output labels, resulting in a 4-ary tuple rather than the usual 2-ary. But, I don't want to be stuck with representing this as a list -- I really need log N lookups or performance will stink horribly as circuits get big. Maybe a pair of finite maps, allowing the edges to be traversed in either direction? If FGL seems like overkill to you, I have my own little mini graph library which basically looks like: - An ADT, Node: newtype Node = Node Int deriving ... - The 'Graph n e' data structure, containing: - a FiniteMap from n - Node - an (growable?) array of type IOArray (Node,Node) e the array represents the edges in the top half (i do some index fiddling to get this efficient) and the finitemap represents the node labellings. It's a pretty stupid interface and works a lot better when the graphs are fixed size (that way you don't need to grow the array). But it works. The finite map from n to Node seems like a good idea. Does representing the adjacency list as a flat array cause any problems? Sarah -- -- / __+ / Sarah Thompson / / (_ _ _ _ |_ /* / / __)(_|| (_|| ) / [EMAIL PROTECTED] * / / + / http://findatlantis.com/ / -- -- -- / __+ / Sarah Thompson / / (_ _ _ _ |_ /* / / __)(_|| (_|| ) / [EMAIL PROTECTED] * / / + / http://findatlantis.com/ / -- ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: Naive question on lists of duplicates
I'm pretty confident that this will be more efficient than my colleague's SAS code, as he was comparing each record to every other record (giving n (n-1) comparisons). It seems like this, in the worst case where everything is on promotion at distinct times, will compare the first record to (n-1) records, the second to (n-2) records, etc., giving n (n-1)/2 comparisons. Thus, while this is worst-case O(n^2), it seems like it should have at most half as much work to do as the earlier approach in SAS. On the other hand, in the best case, when everything is on promotion at the same time, there should be something like n-1 comparisons made and then that should be it. So it seems like, depending on how frequently promotions co-occur for this retailer, the above should be somewhere between O(n) and O(n^2) time complexity. Since these people are always having some sale or other, I suspect this won't be much worse than O(n log n). Is there anything that is an obvious improvement in efficiency -- some clever tricks with the fold functions, some way of loading the data into some sort of convenient structure first, etc -- that I could easily implement? Firstly I'm assuming that you are working with a granularity of days, and that each promotion will always have a relatively small maximum number of days. If so, how about something like the following: 1: Filter the existing data structure, resulting in a lazy list of tuples (a, b) where a is a day number and b is an identifier for the promotion. Where a promotion spans n days, the list will contain n entries, one for each day of the promotion. Complexity is O(M x N), where M is the (small) maximum number of days. If this is fixed *and* small, we can discard this any regard the complexity as just O(N). 2: Sort the list with a as the primary key and b as the secondary key. Complexity should be near enough O(N log N) 3: Traverse the results of the sort, outputting a lazy list of lists such that the elements of each sub-list are references to the promotions that overlap for one specific day number. Where no overlap is detected for one specific day, that day can simply be ignored. Complexity should be linear. 4: Sort this list, and discard duplicates. Complexity should be O(N log N) for the sort and O(N) for the 'uniq'. 5: You are now left with a list which describes all overlapping promotions. Total complexity should effectively be O(N + N log N + N + N log N + N) which of course just collapses to O(N log N). -- -- / __+ / Sarah Thompson / / (_ _ _ _ |_ /* / / __)(_|| (_|| ) / [EMAIL PROTECTED] * / / + / http://findatlantis.com/ / -- ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
Re: GHC and C++ (was RE: Creating COM objects and passing out pointers to them via a COM interface)
I'm replying to two threads at the same time and cross posting my reply, because they are very relevant to each other. I'm sorry if anyone here ends up seeing this more than once as a consequence. [s] -- Sarah Did you get this problem sorted out? Not directly. I ended up building an 'outer' COM component in C++ that mapped an MSXML-like interface onto a simpler, internal COM component that wraps up the Haskell code. This approach seems to work well - I might have been able to build the necessary wrapper directly in Haskell using HDirect, but I was becoming aware that I was probably starting to take up an unreasonable amount of Sigbjorn's time with increasingly detailed questions and I didn't have time to figure out the necessary intricacies from scratch. HDirect seems very good, but I don't think it's currently in quite as stable a state as the main GHC release. The problems I had in building a version that works with the current GHC are an example of this. I'm not complaining - it worked well in the end, but I do think it might be a 'good thing' to consider rolling HDirect into the main GHC release at some point. The other thing that bit me was exception handling, or rather the default behaviour when an uncaught exception 'falls out' and reaches the top level of the runtime system. Currently, the functionality appears to be to abort the current process. Whilst this is probably desirable for a typical application executable (be that console or GUI based), it is a problem if it happens inside a COM component. My thinking is quite straightforward on this. Preferred behaviour should really be for a call to a COM component to fail returning an error code, rather than abort the calling process. 'Server-style' applications are usually expected to keep running when minor faults occur, rather than terminate. HDirect/GHC's current behaviour makes this difficult to achieve - I managed to successfully catch exceptions, but the price was needing to use some code based on DeepSeq to force deep strict evaluation for all state updates. This (seemingly) was the only way I could stop exceptions from happening in the context of the automatically generated COM wrapper - passing it a fully evaluated data structure was apparently the only solution available. However, this does break the advantages of laziness as applied to the current state of the object - it would be pretty neat, for example, to be able to define a view of a database as the result of an expression involving relational algebra combinators, with the query evaluated one record at a time as the data is pulled back by the client application. The need for DeepSeq forces strict evaluation, so this benefit is lost. This is actually more of an issue than it might immediately seem - many queries don't actually need to retrieve all of a record set before useful things can be done. A particular example is updating a GUI, where a list box reflects the results of a query. Lazy evaluation will allow the screen to start updating more or less immediately even on a query that returns thousands of records - strict evaluation might incur a delay of a few seconds (for a very complex query or a large database) before updates can start happening. In an ideal world, what I'd dearly love to see would be an HDirect option that allows a choice between existing functionality and having calls return a failure code, or better still allowing a user-supplied handler function to determine the correct course of action. So, to sum up my wish list: 1. A facility to replace the default uncaught exception behaviour for COM objects and similar shared library code 2. HDirect rolled into the main GHC tree 3. A facility within HDirect to create COM objects based on existing (Haskell) data structures, returning an interface pointer as a return parameter on a call to an existing COM object. (This was the question Simon asked if I'd had an answer to - I've attached a copy below for reference). Sarah PS: I've not yet looked closely at the .NET integration in GHC yet, but I can imagine myself having a very similar wish list in that case too. Hi again, A slightly harder problem this time. I want to implement something that looks something like the Microsoft XML parser. This is a very COM heavy contraption that provides an interface that looks to client applications like a tree of COM objects that reflects the internal structure of an XML document. The idea is, you start with the document object, make a method call requesting the root node, and have a COM object that wraps that node returned to you. You can then request the children of that node, and their children and siblings, all which involves being passed back interface pointers to COM objects. Effectively, there is one COM object per syntactic item in the XML document. I already have my document object working nicely. This is where the actual database resides. I want to be able to spawn views of this database as COM
RE: Exception handling in GHC
I've noticed some interesting behaviour: Prelude Control.Exception try (return (error e)) Prelude Control.Exception it Right *** Exception: e It would appear that when the result of this function is evaluated, the exception fires during evaluation, after the try is out of scope. I suppose it makes some kind of twisted sense due to lazy evaluation going on, but it is certainly a gotcha. I did notice this: Prelude Control.Exception try (return $! (error e)) Prelude Control.Exception it Left e Seemingly, forcing strict evaluation on the argument of return fixes the problem by making sure that any exception that *can* happen, *does* happen. However, this code from my COM wrapper: --[id(3)] HRESULT XmlQuery([in,string] BSTR query, [out,retval]BSTR* xml); xmlQuery :: String - State - IO String xmlQuery qry (State st) = do db - readIORef st Control.Exception.catch (return $! (XMLDatabase.xmlQuery qry db)) (\ _ - return error description=\Parse error\/) doesn't work. If XMLDatabase.xmlQuery throws an exception, the COM wrapper still terminates the host application (Yes, Sigbjorn - I did apply your patch to HDirect, but it seemed to make no difference). I'm still a bit stuck here! Sarah ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: Exception handling in GHC
Your COM wrapper code probably behaves differently because the error is not evoked at the very top level. Note that `seq` (and hence ($!)) only force evaluation to weak head normal form, which essentially means only enough to determine the top-level constructor. You may need to evaluate more deeply. Check out `DeepSeq` (http://haskell.org/pipermail/haskell/2001-August/001586.html) and/or strategies (http://www.mail-archive.com/haskell@haskell.org/msg09543/Strategi es.lhs). DeepSeq fixed it in one go. Brilliant! Many thanks for the help. My COM object now appears to be unreasonably solid regardless of what I throw at it. :) Sarah ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
Creating COM objects and passing out pointers to them via a COM interface
Hi again, A slightly harder problem this time. I want to implement something that looks something like the Microsoft XML parser. This is a very COM heavy contraption that provides an interface that looks to client applications like a tree of COM objects that reflects the internal structure of an XML document. The idea is, you start with the document object, make a method call requesting the root node, and have a COM object that wraps that node returned to you. You can then request the children of that node, and their children and siblings, all which involves being passed back interface pointers to COM objects. Effectively, there is one COM object per syntactic item in the XML document. I already have my document object working nicely. This is where the actual database resides. I want to be able to spawn views of this database as COM objects. When I've done this in the past (using ATL mostly, egh), I've used an IDL definition something like HRESULT CreateView([in,string] BSTR query, [out,retval] IDbView **); What's the correct way to implement the necessary Haskell code to create the coclass and return a pointer to it? I fiddled around for ages, but either couldn't get GHC to like the types I was using, or when I finally got it to compile, I found that my test harness was being passed an invalid COM object. This should be simple stuff, so I'm sure someone will have done it! Secondly, it is a nasty, though fairly common trick, if you know your objects are going to be created in the same process space, to allow them some 'behind the scenes' communication. In my case, I'd like to avoid needing to serialise and deserialse the data in a view during creation of these child objects (of which there may be a great many, and which may be created on the fy rather often). Ideally, I'd like to be able to do something like: newView :: String - State - IO State newView db (State st) = do db - readIORef st r - newIORef db -- Insert some kind of COM magic here return (State r) so the database content gets copied within the Haskell environment (lazily, I'd hope), without needing to be serialised and deserialised. Is this feasible? One (messy) approach might be to create a bunch of extra interfaces on the main database object, then create 'thin wrapper' child objects that simply make calls back into the parent object. I'm not so keen on that for various reasons, however. Sarah ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe
RE: Stupid questions...
I need to convert Ints to Strings and vice-versa. What's the best way to do this? I've not found library functions for this. Read and Show. Hmm... should have tried that before posting. :) My second question about integer division still stands, however. Thanks, Sarah ___ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe