[Haskell] Registration now open: Haskell in Leipzig (Germany) December 4/5

2015-11-13 Thread Johannes Waldmann
Register now - for Amazing Talks and Thrilling Tutorials:

  HaL-10  Haskell in Leipzig  December 4/5
  http://nfa.imn.htwk-leipzig.de/HAL2015/

Opens with an invited talk by Joachim Breitner on MonadFix,
closes with a presentation of Liquid Haskell by Michael Beaumont.

- Johannes Waldmann.

PS: HaL-1 (in 2006, on quite the same day) also had a MonadFix talk.
Well of course, this has something to do with recurrence...
___
Haskell mailing list
Haskell@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell


[Haskell] 2nd CfP: Haskell in Leipzig (Germany) 2015

2015-10-29 Thread Johannes Waldmann
HaL-10 Haskell in Leipzig (December 4/5)

http://nfa.imn.htwk-leipzig.de/HAL2015/

We are proud to present Joachim Breitner (nomeata)
as our invited speaker.

The submission deadline (November 2) is approaching!

See you - Johannes Waldmann (PC chair)
___
Haskell mailing list
Haskell@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell


[Haskell] CfP: Haskell in Leipzig (Germany), 4/5 December 2015

2015-10-09 Thread Johannes Waldmann
"Haskell in Leipzig" (Germany) workshop
http://nfa.imn.htwk-leipzig.de/HAL2015/
welcomes Your contribution. Now.

Wir rechnen mit Vorträgen und Tutorien
und freuen uns über weitere Vorschläge
(Musik/live coding, mini-hackathon, Rätsel, ..)

* bis 2. November: Einreichung von Beiträgen
* 5. November: Bekanntgabe des Programms
* bis 27. November: Anmeldung
* 4. und 5. Dezember: Workshop

Herzliche Grüße, Johannes Waldmann, Leipzig.

___
Haskell mailing list
Haskell@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell


[Haskell] Call for participation: 8th International School on Rewriting - ISR 2015

2015-05-17 Thread Johannes Waldmann
Call for participation

8th International School on Rewriting - ISR 2015
August 10-14, Leipzig, Germany
http://www.imn.htwk-leipzig.de/ISR2015/

* early registration deadline: July 1
* student research posters welcome

=

The 8th International School on Rewriting (ISR 2015)
is aimed at master and PhD students, researchers, and practitioners
interested in the study of rewriting concepts and their applications.

The school features lectures by renowned researchers in rewriting,
and is organized in two parallel tracks:

Basic: aimed at students that enter the field.

Aart Middeldorp and Sarah Winkler: Introductory Course

Advanced: several shorter courses, showing different areas
  of rewriting research, with applications.

David Sabel and Manfred Schmidt-Schauß:
  Rewriting Techniques for Correctness of Program Transformations
Makoto Hamana: Algebraic Semantics of Higher-Order Abstract Syntax
  and Second-Order Rewriting
Santiago Escobar: Term Rewriting applied to
  Cryptographic Protocol Analysis
Hans Zantema: SAT/SMT encodings for rewrite problems
Femke van Raamsdonk: Higher-Order Rewriting
Alfons Geser: Proving Abstract Rewriting Properties with PVS
Georg Moser: Termination and Complexity
Detlef Plump: Rule-based Graph Programming

Also, we encourage participants to submit a presentation of
their research, in the form of a poster. These posters will be reviewed
by experts in rewriting, and will be displayed and discussed during
the school.



Rewriting is a branch of computer science whose origins go back
to the origins of computer science itself (with Thue, Church, Post,
and many other prominent researchers). It has strong links with
mathematics, algebra, and logic, and it is the basis of well-known
programming paradigms like functional and equational programming.
In these programming paradigms and corresponding languages, the notions
of reduction, pattern matching, confluence, termination, strategy,
etc., are essential. Rewriting provides a solid framework for
understanding, using, and teaching all these notions. Rewriting
techniques are also used in many other areas of software engineering
(scripting, prototyping, automated transformation of legacy systems,
refactoring, web services, etc.) Rewriting techniques play a relevant
role in computing research, education, and industry.

International Schools on Rewriting are promoted
by the IFIP Working Group 1.6 Term Rewriting.

ISR 2015 organizing committee:
Alfons Geser, Christine Klöden, and Johannes Waldmann.



Note: ISR 2015 is right after CADE
( http://www.inf.fu-berlin.de/cade25/ )
You can go from Berlin to Leipzig in 1 hour by train.

___
Haskell mailing list
Haskell@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell


[Haskell] 2nd CfP: WFLP 2014 - Workshop on Functional and (Constraint) Logic Programming

2014-06-26 Thread Johannes Waldmann
(note: Deadline extended to July 10th)

***

23rd International Workshop
on Functional and (Constraint) Logic Programming

http://www.imn.htwk-leipzig.de/WFLP2014/

colocated with 28th Workshop
on (Constraint) Logic Programming (WLP 2014)

September 15 - 17, at Leucorea conference center
in Lutherstadt Wittenberg, Germany.

***

Dates:

* submission closes: July 10, 2014
* notification: August 4, 2014
* final version due: September 1, 2014
* workshop: September 15 - 17, 2014

***

The international workshops on functional and logic programming aim at
bringing together researchers interested in functional programming,
logic programming, as well as their integration. The workshops on
(constraint) logic programming serve as the scientific forum of the
annual meeting of the Society of Logic Programming (GLP e.V.) and bring
together researchers interested in logic programming, constraint
programming, and related areas like databases, artificial intelligence,
and operations research.

In this year both workshops will be jointly organized and co-located, in
order to promote the cross-fertilizing exchange of ideas and experiences
among researchers and students from the different communities interested
in the foundations, applications, and combinations of high-level,
declarative programming languages and related areas. The technical
program of the workshop will include invited talks, presentations of
refereed papers and demo presentations.

The joint workshop will consist of two tracks (WFLP and WLP). Sessions
of these two tracks will be interleaved.



Topics

The topics of interest include (but are not limited to):

Functional programming
Logic programming
Constraint programming
Deductive databases, data mining
Extensions of declarative languages, objects
Multi-paradigm declarative programming
Foundations, semantics, nonmonotonic reasoning, dynamics
Parallelism, concurrency
Program analysis, abstract interpretation
Program transformation, partial evaluation, meta-programming
Specification, verification, declarative debugging
Knowledge representation, machine learning
Interaction of declarative programming with other formalisms (e.g.,
agents, XML, Java)
Implementation of declarative languages
Advanced programming environments and tools
Software technique for declarative programming
Applications

The primary focus is on new and original research results but
submissions describing innovative products, prototypes under
development, application systems, or interesting experiments (e.g.,
benchmarks) are also encouraged.



Program Committee (WFLP track)

Elvira Albert, Complutense University of Madrid, Spain
Sergio Antoy, Portland State University
Mauricio Ayala-Rincon, University of Brasilia, Brazil
William Byrd, University of Utah
Michael Hanus , Universität Kiel, Germany
Herbert Kuchen, Universität Münster, Germany
Carlos Olarte, DECC, Pontificia Universidad Javeriana Cali, Colombia
Janis Voigtländer, Universität Bonn, Germany
Johannes Waldmann (chair), HTWK Leipzig, Germany
Peter J. Stuckey, NICTA and the University of Melbourne, Australia
René Thiemann, University of Innsbruck, Austria

Organising Committee

Stefan Brass (chair) Universität Halle, Germany




signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] CFP: WFLP 2014 - Workshop on Functional and (Constraint) Logic Programming

2014-05-12 Thread Johannes Waldmann
23rd International Workshop
on Functional and (Constraint) Logic Programming

http://www.imn.htwk-leipzig.de/WFLP2014/

colocated with 28th Workshop
on (Constraint) Logic Programming (WLP 2014)

September 15 - 17, at Leucorea conference center
in Lutherstadt Wittenberg, Germany.

***

Dates:

* submission closes: July 1, 2014
* notification: August 1, 2014
* final version due: September 1, 2014
* workshop: September 15 - 17, 2014

***

The international workshops on functional and logic programming aim at
bringing together researchers interested in functional programming,
logic programming, as well as their integration. The workshops on
(constraint) logic programming serve as the scientific forum of the
annual meeting of the Society of Logic Programming (GLP e.V.) and bring
together researchers interested in logic programming, constraint
programming, and related areas like databases, artificial intelligence,
and operations research.

In this year both workshops will be jointly organized and co-located, in
order to promote the cross-fertilizing exchange of ideas and experiences
among researchers and students from the different communities interested
in the foundations, applications, and combinations of high-level,
declarative programming languages and related areas. The technical
program of the workshop will include invited talks, presentations of
refereed papers and demo presentations.

The joint workshop will consist of two tracks (WFLP and WLP). Sessions
of these two tracks will be interleaved.



Topics

The topics of interest include (but are not limited to):

Functional programming
Logic programming
Constraint programming
Deductive databases, data mining
Extensions of declarative languages, objects
Multi-paradigm declarative programming
Foundations, semantics, nonmonotonic reasoning, dynamics
Parallelism, concurrency
Program analysis, abstract interpretation
Program transformation, partial evaluation, meta-programming
Specification, verification, declarative debugging
Knowledge representation, machine learning
Interaction of declarative programming with other formalisms (e.g.,
agents, XML, Java)
Implementation of declarative languages
Advanced programming environments and tools
Software technique for declarative programming
Applications

The primary focus is on new and original research results but
submissions describing innovative products, prototypes under
development, application systems, or interesting experiments (e.g.,
benchmarks) are also encouraged.



Program Committee (WFLP track)

Elvira Albert, Complutense University of Madrid, Spain
Sergio Antoy, Portland State University
Mauricio Ayala-Rincon, University of Brasilia, Brazil
William Byrd, University of Utah
Michael Hanus , Universität Kiel, Germany
Herbert Kuchen, Universität Münster, Germany
Carlos Olarte, DECC, Pontificia Universidad Javeriana Cali, Colombia
Janis Voigtländer, Universität Bonn, Germany
Johannes Waldmann (chair), HTWK Leipzig, Germany
Peter J. Stuckey, NICTA and the University of Melbourne, Australia
René Thiemann, University of Innsbruck, Austria

Organising Committee

Stefan Brass (chair) Universität Halle, Germany




signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] Looking for a Yesod presentation in Leipzig, Germany

2013-10-14 Thread Johannes Waldmann
Have you applied Yesod recently? ( http://www.yesodweb.com/ )

Would you enjoy presenting your Yesod project
to C.S. master's students during a course (Oberseminar)
that I'm teaching at HTWK Leipzig currently?

Then email me with details: a short description of your project,
preferrably including (link to) source code;
and a preferred date (in November or December).

The presentation can be in German or in English.
Total time is 90 minutes, but this should include
(plenty of) discussion, or even live coding.

No, I don't have any funding for this - except you'll get
free beer at our local Haskell group meeting (Stammtisch)
which we can schedule for right after your talk.

- Johannes.  ( http://www.imn.htwk-leipzig.de/~waldmann/ )
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] ANN: set-cover solves Sudoku, Soma cube, 8 Queens etc.

2013-09-08 Thread Johannes Waldmann
Henning Thielemann lemming at henning-thielemann.de writes:

 .. package set-cover for solving exact set cover problems.
 http://hackage.haskell.org/package/set-cover

It's hard to evaluate whether one could use the library
because there's essentially no visible documentation.

E.g., what does Math.SetCover.Exact.search do?
Its type refers to State which seems implementation-dependent,
and hides the connection to the specification of the set cover problem.

Putting some text and examples into the haddocks might help.
But of course putting the specification there would be even better.

Also, care to explain what algorithm  your solver uses,
and give some performance data (e.g., N-queens for N=10,20,40,..)?

- J.W.



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] xmonad (+ mate) evince problem?

2013-08-26 Thread Johannes Waldmann
Problem solved: with mate, use atril instead of evince. 
(I think it is a gtk2/tgk3 issue and it's got nothing to do with xmonad.)



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Hoogle vs Hayoo

2013-08-23 Thread Johannes Waldmann
Mateusz Kowalczyk fuuzetsu at fuuzetsu.co.uk writes:

 I always thought [hayoo] was just Hoogle with more indexed docs.

Wait - there's a semantic difference:

hoogle does understand type signatures
(e.g., it can specialize them, or flip arguments of functions)
while hayoo just treats signatures as strings (it seems).

Example: search for [a] - [a] 

hoogle: will also return  Data.Text.transpose :: [Text] - [Text]
(note: instantiated  a  to Text)

hayoo: will also return Data.List.isInfixOf :: [a] - [a] - Bool
(note:  the type is [a] - ([a] - Bool), 
so it does actually not contain the type from the query)

I much prefer hoogle's query semantics.

- J.W.

PS: but hoogle also returns   inits :: [a] - [[a]]
which is not an instance of the query. Why is this?



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] haskore - lilypond - typesetting?

2013-08-21 Thread Johannes Waldmann
I tried using lilypond ( http://www.lilypond.org/ ) 
for typesetting of sheet music.

While the output looks nice, the input language IMHO is quite horrible,
because the underlying data/execution model is underspecified.
For some parts, it tries to describe the logical structure of the score; 
but for others, the layout; and in addition it has several non-obvious 
context-dependencies (but see below), preventing modularity.

Is there a better option? E.g., starting from a clear mathematical model,
as in Haskore, and use lilypond only as a PDF rendering engine?

Do I want hly / hts perhaps?  http://rd.slavepianos.org/?t=hly


As I see it, the main high-level design problem 
is that the source language needs partial evaluation annotations
for abstractions applications: sometimes they should be expanded 
(for MIDI rendering, always) and sometimes not (in typesetting, 
to create repetition marks instead of actually repeating notes). 


PS: I agree that some of lilypond's context dependencies 
(relative pitch, implicit note length) do really save 
large amounts of tedious typing: c4 e g a c1 is much more economical 
than [c 1 qn, e 1 qn, g 1 qn , a 1 qn, c 2 fn] 
which I guess is the Haskore equivalent.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] xmonad (+ mate) evince problem?

2013-08-12 Thread Johannes Waldmann
Hi. I am using xmonad + mate (on fedora 19)
and evince (PDF viewer) seems unresponsive: 
it reacts to my (mouse) input 
only after switching to another screen and back.
Any hints? - Thanks, J. W.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] What does it mean to derive equations of restricted from in Haskell?

2013-07-16 Thread Johannes Waldmann
Daryoush Mehrtash dmehrtash at gmail.com writes:

 What does restricted form mean?

non-restricted: e.g., f (f x y) z = f x (f y z))

restricted: the shape of function declarations in Haskell
(where lhs is a pattern) 

  definitions are terminating ...

non-termination: an equation like  f x y = f y x
when you orient it as a rule  f x y - f y x,
there are infinite derivations

 and exhaustive

non-exhaustive: you have an equation f (x : ys) = ...
but you don't have an equation for f [] = ...


(all the above is is standard stuff in algebraic specification, 
equational reasoning, etc.)

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] TH splicing and recompilation checking

2013-07-16 Thread Johannes Waldmann
Hi. 

we are using template Haskell to splice in some code
that is produced by reading and transforming the contents of another file. 

now, if this other file is touched (by editing),
but not the main file, then ghc (and cabal) do not realize 
that the main file does need to be recompiled.

is there a way to tell them about the dependency?

(example main file: 
https://github.com/apunktbau/co4/blob/master/CO4/Test/Queens.hs)

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] Workshop on Termination (deadline extension: July 22)

2013-07-15 Thread Johannes Waldmann
13th International Workshop on Termination (WST)

Centro Residenziale Universitario di Bertinoro (near Bologna, Italy)

http://www.imn.htwk-leipzig.de/WST2013/

submission: July 22, 2013
notification: July 25, 2013
final version: August 10, 2013
workshop: August 29 - 31, 2013

The Workshop on Termination traditionally brings together, in an
informal setting, researchers interested in all aspects of termination,
whether this interest be practical or theoretical, primary or derived.
The workshop also provides a ground for cross-fertilisation of ideas
from term rewriting and from the different programming language
communities. The friendly atmosphere enables fruitful exchanges leading
to joint research and subsequent publications.

The 13th Workshop on Termination will be held from August 29 to 31,
2013, at the Centro Residenziale Universitario di Bertinoro (Italy).

It will be a joint workshop, together with the 3rd International
Workshop on Foundational and Practical Aspects of Resource Analysis. The
sessions of WST and FOPARA will be interleaved, this way facilitating
the interaction between the two communities.

( complete CfP see http://www.imn.htwk-leipzig.de/WST2013/ )



signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell-cafe] Workshop on Termination (deadline: July 22)

2013-07-15 Thread Johannes Waldmann
Dear all.

Still one week to go: submit your results and questions on all things
related to termination and bounded resource consumption
(of user programs, of type checkers, etc.)
to the Workshop on Termination. We are specifically encouraging
contributions from the Haskell (and Agda, and Idris) community.

- Johannes.

#

13th International Workshop on Termination (WST)

( full CfP see http://www.imn.htwk-leipzig.de/WST2013/ )

Centro Residenziale Universitario di Bertinoro (near Bologna, Italy).

submission: July 22, 2013
notification: July 25, 2013
final version: August 10, 2013
workshop: August 29 - 31, 2013

The Workshop on Termination traditionally brings together, in an
informal setting, researchers interested in all aspects of termination,
whether this interest be practical or theoretical, primary or derived.
The workshop also provides a ground for cross-fertilisation of ideas
from term rewriting and from the different programming language
communities. The friendly atmosphere enables fruitful exchanges leading
to joint research and subsequent publications.





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] question about indentation conventions

2013-07-01 Thread Johannes Waldmann
   Code which is part of some expression should be indented 
   further in than the beginning of that expression [...]

Yes. Then the next question is how much further in.

My answer is: it does not matter, but make it consistent (like 4 spaces),
with the implication that indentation should *not* depend
on length of identifiers in the previous line(s)

Example (bad):

foo x = do bar
   baz

Example (good):

foo x = do
bar
baz

Reason: when refactoring later changes the name foo,
or the number or names of its arguments,
you'll have to re-indent code (in the bad version):
(a) this needs tool support and
(b) it creates noise in the diffs.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Installing Z3 on OS X 10.8.4 ( Off topic )

2013-07-01 Thread Johannes Waldmann
 Unable to locate executable for z3

well, do you really have z3 in the $PATH?  
what does 'which z3' answer?

I used this for installation of z3:
python scripts/mk_make.py --prefix=/usr/local

and note that the install script says:

Z3 shared libraries were installed at /usr/local/lib, make sure this
directory is in your LD_LIBRARY_PATH environment variable.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] how to debug stack overflow?

2013-06-22 Thread Johannes Waldmann
What is the recommended method 
to find the exact reason for a stack overflow
(when running a Haskell program compiled with ghc)?

When I compile with -prof -auto-all, and run with +RTS -xc,
I see a very short call stack, which can't be right. 
But that's probably because I am calling some library method 
that was compiled without -auto-all so it's invisible in the trace?

I can avoid the overflow by +RTS -K1G  or something
but I want to investigate because it might indicate
some inefficiency in the code (evaluations happening
at the wrong time).

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] how to debug stack overflow?

2013-06-22 Thread Johannes Waldmann
Aleksey Uymanov s9gf4ult at gmail.com writes:

 Try to use heap profiling. There is very high probability that the
 problem is because of space leak.

Really? Would it help in the standard example:

main = print $ foldr (+) 0 [1 .. 1::Int]

this leaks space (that is, cannot run in small space)
only because it leaks closures, right?
but how I'm going to recognize them in the heap profile?

When I run the above with +RTS -K1G -M1G -h -p
I do indeed get heap overflow (instead of stack overflow)
but the heap profile shows an allocation of 30k bytes only.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: standalone-haddock-1.0

2013-06-08 Thread Johannes Waldmann
Roman Cheplyaka roma at ro-che.info writes:

   http://feuerbach.github.io/standalone-haddock/

yes, awesome!

I took me a while to figure out I need to add
--package-db $HOME/.ghc/x86_64-linux-7.6.3/package.conf.d

um, where's --hyperlink-source ?

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] Call for Participation: Workshop on Haskell and Rewriting Techniques (June 27, Eindhoven)

2013-05-28 Thread Johannes Waldmann
The list of accepted papers, and preliminary schedule,
for the first

International Workshop on Haskell And Rewriting Techniques
(June 27, Eindhoven/NL, as part of RDP 2013)

is available from the workshop web site
http://www.imn.htwk-leipzig.de/HART2013/

Register soon - RDP early registration deadline is June 1!

Best regards - Kristoffer H Rose and Johannes Waldmann.





signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] Generalizing unionWithKey, unionWith, ...

2013-05-28 Thread Johannes Waldmann
Jose A. Lopes jose.lopes at ist.utl.pt writes:

 unionWith :: Ord k = (a - b - c) - Map k a - Map
 k b - Map k c

what should be the result of

unionWith undefined (M.singleton False 42) (M.singleton True bar)  ?

perhaps you mean intersectionWith, which already has the type you want.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Generalizing unionWithKey, unionWith, ...

2013-05-28 Thread Johannes Waldmann
Jose A. Lopes jose.lopes at ist.utl.pt writes:

 What makes it an interesting example ?

it shows that your proposed type for unionWith is not reasonable.

 why would you want to use undefined in that particular case?

the two argument maps have disjoint key sets,
so the combining function will never be called,
and writing undefined just states this.

of course, all of this refers to the implicit specification 
for unionWith, which should contain something like

M.keysSet (M.unionWith f m1 m2) = S.union (M.keysSet m1) (M.keysSet m2)

(hence the name, union) and this is an implication of

M.lookup k (M.unionWith f m1 m1) = 
case (M.lookup k m1, M.lookup k m2) of
(Nothing,Nothing) - Nothing
(Just v1, Nothing) - Just v1
(Nothing,Just v2) - Just v2
(Just v1, Just v2) - Just (f v1 v2)

I would very much welcome that such specs be added to the 
library documentation - in some suitable way, e.g., haddock
can generate source links already, and it would be nice if it 
also could show spec links, pointing to small/quick-check properties, 
which I guess are in the source code somewhere already,
cf. 
https://github.com/haskell/containers/blob/master/tests/map-properties.hs#L408 

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] Call for Participation: HaL8 - Haskell in Leipzig (Germany), June 21

2013-05-17 Thread Johannes Waldmann
Hal8 - Haskell in Leipzig, June 21.

visit the workshop web site for program and registration:

http://www.bioinf.uni-leipzig.de/conference-registration/13haskell

See you - Johannes Waldmann.



signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] What symbol / atom/ interned-string package is currently preferred?

2013-05-09 Thread Johannes Waldmann
 http://hackage.haskell.org/package/intern

what does this package do? OK, I can read efficient hash consing 
but what does it mean exactly? and how would I actually use it? 

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] What symbol / atom/ interned-string package is currently preferred?

2013-05-09 Thread Johannes Waldmann
 https://github.com/ekmett/intern/blob/master/examples/Term.hs

sure I found this but that still does not say much.

I known generally what hash consing is 
(and that's why I think I might want to use this package)
but I don't see what is the (implied) contract for this implementation:
It looks like I need to write some instances 
(to make my typ internable) but what properties should they have, 
and what properties of the functions defined in the package 
do I get in return?

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] CfP Workshop Haskell and Rewriting Techniques (Deadline: May 21)

2013-05-08 Thread Johannes Waldmann
final call for papers (note: extended deadline)
==

Rewriting is the science of replacing equals by equals
and thus a very powerful method for dealing with equations.
There are strong connections between Haskell programming and rewriting.
Therefore, we announce a new workshop,

International Workshop on Haskell And Rewriting Techniques (HART 2013)
  http://www.imn.htwk-leipzig.de/HART2013/

to be held on June 27, in conjunction with RDP 2013, in Eindhoven.
(RDP contains RTA, the main rewriting conference.)

We plan a half day of discussions, in an informal setting,
on how Haskell and rewriting techniques and theories
can cross-fertilize each other.

Topics of interest are, for example,

equational reasoning and other rewriting techniques
for program verification and analysis;
lambda calculi and type systems for functional programs
and higher order rewriting systems;
rewriting of type expressions in the type checker;
rewriting of programs by refactoring tools, optimizers, code generators;
execution of programs as a form of graph rewriting;
template Haskell, introducing a rewriting-like macro language
into the compilation process.

This list of topics is non-exclusive. If you have a contribution that
connects Haskell and rewriting, then submit. When in doubt, contact a
member of the PC.

Program committee:

Alcino Cunha (U Minho)
Jürgen Giesl (RWTH Aachen)
Andy Gill (U of Kansas)
Johan Jeuring (U Utrecht)
Keisuke Nakano (UEC Tokyo)
Kristoffer H Rose (IBM Watson) (co-chair)
Christian Sternagel (JAIST)
Janis Voigtländer (U Bonn)
Johannes Waldmann (HTWK Leipzig) (co-chair)

Dates:

May 21: deadline for submissions
May 28: notification of acceptance
June 27: workshop

Submission and Proceedings:

Two categories of submissions are invited:

Extended abstracts. Presenting original research,
and also preliminary reports of work in progress.
Will be included in the proceedings.
Presentation-only papers. Describing work recently published
or submitted. Will not be included in the proceedings.

Papers should be at most 5 pages in length,
and should use the easychair.cls style.
Submission is handled through the EasyChair HART2013 page,
https://www.easychair.org/conferences/?conf=hart2013

In line with the informal style of the workshop,
the reviewing of submissions will be light.

When accepting and scheduling presentations,
preference will be given to original research.

Proceedings will be made available electronically at the workshop.




signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] Backward compatibility

2013-05-02 Thread Johannes Waldmann
Adrian May adrian.alexander.may at gmail.com writes:

  this decision to change the default syntax in GHC7 

what decision? what syntax? here's the release notes (7 vs. 6)
http://www.haskell.org/ghc/docs/7.0.1/html/users_guide/release-7-0-1.html

I guess you are referring to hierarchical module names?
(import List = import Data.List)

Indeed, I cannot build
WASH http://hackage.haskell.org/package/WashNGo-2.12.0.1
on ghc-7.6.3, and I don't see how it could have worked on 7.0,
as hackage claims it did. 

(building the executables: 
when using base and haskell89, import Prelude is ambiguous; 
when using haskell98 only, modules like System.Exit are not available.)

I think this could be fixed in a straightforward way,
but that fixing it is necessary at all, just proves your point.

- J.W.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Backward compatibility

2013-05-02 Thread Johannes Waldmann
Byron Hale byron.hale at einfo.com writes:

   I was just in the process of trying to get Haskell 7.6 installed.

You cannot install Haskell 7.6. Haskell is a language. 

You can install a language implementation (compiler/interpreter).
There may be several. You can also install a set of libraries.
These may be bundled (one compiler with one set of libraries).
One such bundle is called the Haskell platform.
Is this what you are trying to install? (But then the version is nothing
like 7.6, this looks more like a compiler version.)

Of course this naming error is directly suggested by haskell.org, where 
we have the equally meaningless Download Haskell right on the front page.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Fwd: How to do automatic reinstall of all dependencies?

2013-04-25 Thread Johannes Waldmann
Alexander Kjeldaas alexander.kjeldaas at gmail.com writes:

 cabal install --upgrade-dependencies  `eval echo $(ghc-global-constraints
)` package-name

for a moment I was reading ghc --global-constraints there ... - J.W.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] what happened to alexAndPred?

2013-04-23 Thread Johannes Waldmann
Hi. I have ghc-7.6.3 and alex-3.0.5.
When I build https://github.com/jwaldmann/smt-lib
it breaks with Language/SMTLIB/Lexer.x:6:5: Not in scope: `alexAndPred'.
It was working with alex-2.3.5.

I was going t add Can I constrain the alex version in the 
cabal file (I recall this is difficult for executables since
they're not registered with ghc) but it wouldn't help since
alex-2.3.5 cannot be built with a recent ghc-7.6 
because Module `System.IO.Error' does not export `try'.
Also, not with ghc-7.4.2 because of
dist/build/alex/alex-tmp/Scan.hs:344:17:
Illegal bang-pattern (use -XBangPatterns):
And not with = ghc-7.2 because of
Linking /tmp/alex-2.3.5-20331/alex-2.3.5/dist/setup/setup ...
unrecognized option `--disable-benchmarks'




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



[Haskell-cafe] version of containers fixed by template-haskell?

2013-04-17 Thread Johannes Waldmann
Is it still the case that 
It just doesn't work to have multiple versions of a wired-in package 
(cf. http://hackage.haskell.org/trac/ghc/ticket/5704 )?

ghc-7.6.2 comes with containers-0.5.0.0 and template-haskell-2.8.0.0 .
It seems I can upgrade to containers-0.5.2.1 and use it with no problems
but not alongside template-haskell: 

... changes: containers-0.5.0.0 - 0.5.2.1,
Warning: The following packages are likely to be broken by the reinstalls:
... ghc-7.6.2

(Isn't it somewhat bold of cabal-install to offer to break ghc-7.6.2?
like, this will completely hose the compiler?)

That's bad, because I use containers everywhere, and I assume that
0.5.2.1 has some advantages (like, speed) over 0.5.0.0.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] version of containers fixed by template-haskell?

2013-04-17 Thread Johannes Waldmann
Roman Cheplyaka roma at ro-che.info writes:

 ghc is the package that provides the GHC API.
 Breaking it should not affect the compiler itself, since it is
 statically linked.

Yes. But once ghc (the package) is broken, 
it cannot be fixed (except by re-installing ghc (the compiler))?



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] version of containers fixed by template-haskell?

2013-04-17 Thread Johannes Waldmann
Roman Cheplyaka roma at ro-che.info writes:

 On second thought, are you trying to install it globally? 

locally

 ghc is installed globally, and local packages should not break it. 

still cabal-install says so (and I don't dare to test ...)



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] data types with overlapping component names (in one module)?

2013-04-16 Thread Johannes Waldmann
What is the current situation: can we have two types 
with overlapping component names in one module?

module M where
data T1 = C1 { foo :: Int }
data T2 = C2 { foo :: String }

It seems not (ghc says: Multiple declarations of 'foo'). This comes close:
http://www.haskell.org/ghc/docs/7.6.2/html/users_guide/syntax-extns.html#disambiguate-fields
but still requires the definitions to reside in different modules?

This is a major pain (it forces me to spread the source over several files),
and also a show-stopper when selling Haskell to OO folks, who naturally
assume that a class also denotes a scope. (And that you could nest them.)

Are/were there plans/proposals to address this? 

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Prolog-style patterns

2013-04-09 Thread Johannes Waldmann
Yuras Shumovich shumovichy at gmail.com writes:

 Will not it be a nightmare to implement and maintain checker for
 overlapping/unused clauses for non-linear patterns?

For sure it does not look straightforward. 

Note that there are some results and algorithms 
for non-linear patterns, cf. this short survey by S. Tison: 
Tree Automata, (Dis-)Equality Constraints and Term Rewriting: What's New?
http://drops.dagstuhl.de/opus/frontdoor.php?source_opus=3140
and some background in Tree automata with constraints 
(esp. Sec. 4.4.5) http://tata.gforge.inria.fr/chap4.php

 (advertisement starts here)

(overlap checking for) non-linear patterns in Haskell
looks like an ideal topic  for a submission to the 
Haskell and Rewriting workshop http://www.imn.htwk-leipzig.de/HART2013/



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] CfP: Workshop Haskell and Rewriting Techniques HART 2013

2013-04-07 Thread Johannes Waldmann
Rewriting is the science of replacing equals by equals
and thus a very powerful method for dealing with equations.
There are strong connections between Haskell programming and rewriting.
Therefore, we announce a new workshop,

International Workshop on Haskell And Rewriting Techniques (HART 2013)
  http://www.imn.htwk-leipzig.de/HART2013/

to be held on June 27, in conjunction with RDP 2013, in Eindhoven.
(RDP contains RTA, the main rewriting conference.)

We plan a half day of discussions, in an informal setting,
on how Haskell and rewriting techniques and theories
can cross-fertilize each other.

Topics of interest are, for example,

equational reasoning and other rewriting techniques
for program verification and analysis;
lambda calculi and type systems for functional programs
and higher order rewriting systems;
rewriting of type expressions in the type checker;
rewriting of programs by refactoring tools, optimizers, code generators;
execution of programs as a form of graph rewriting;
template Haskell, introducing a rewriting-like macro language
into the compilation process.

This list of topics is non-exclusive. If you have a contribution that
connects Haskell and rewriting, then submit. When in doubt, contact a
member of the PC.

Program committee:

Alcino Cunha (U Minho)
Jürgen Giesl (RWTH Aachen)
Andy Gill (U of Kansas)
Johan Jeuring (U Utrecht)
Keisuke Nakano (UEC Tokyo)
Kristoffer H Rose (IBM Watson) (co-chair)
Christian Sternagel (JAIST)
Janis Voigtländer (U Bonn)
Johannes Waldmann (HTWK Leipzig) (co-chair)

Dates:

May 6: deadline for submissions
May 20: notification of acceptance
June 27: workshop

Submission and Proceedings:

Two categories of submissions are invited:

Extended abstracts. Presenting original research,
and also preliminary reports of work in progress.
Will be included in the proceedings.
Presentation-only papers. Describing work recently published
or submitted. Will not be included in the proceedings.

Papers should be at most 5 pages in length,
and should use the easychair.cls style.
Submission is handled through the EasyChair HART2013 page,
https://www.easychair.org/conferences/?conf=hart2013

In line with the informal style of the workshop,
the reviewing of submissions will be light.

When accepting and scheduling presentations,
preference will be given to original research.

Proceedings will be made available electronically at the workshop.






signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] Error when building executable with profiling enabled

2013-04-07 Thread Johannes Waldmann
Krzysztof Skrzętnicki gtener at gmail.com writes:

 see this documentation on profiling with TH:
http://www.haskell.org/ghc/docs/7.6.1/html/users_guide/template-haskell.html#id624714


GHC cannot load the profiled object code 
and use it when executing the splices.

That means I do not get profiling information 
for the code that gets spliced in? 
Or for the code that is producing the splice?

What's the work-around for the first case?
(short of -ddump-splices, which seems somewhat problematic,
according to   http://hackage.haskell.org/trac/ghc/ticket/5016 )

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Haskell is a declarative language? Let's see how easy it is to declare types of things.

2013-04-04 Thread Johannes Waldmann
Albert Y. C. Lai trebla at vex.net writes:

 Quantifiers are complicated, but I don't see how explicit is more so 
 than implicit. [...] I have just seen recently [...]

Great example. I completely agree. 

My feeling is that mathematicians use this principle of leaving out 
some of the quantifiers and putting some others in the wrong place
as a cultural entry barrier to protect their field from newbies.

Well, not use, but willingly tolerate, perhaps.

(I do have a diploma in mathematics, from a German university.)



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Haskell is a declarative language? Let's see how easy it is to declare types of things.

2013-04-04 Thread Johannes Waldmann
Tom Ellis tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk writes:

 I didn't see an example of quantifiers in the wrong place. 

The example was:

  every x satisfies P(x,y) for some y



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Haskell is a declarative language? Let's see how easy it is to declare types of things.

2013-04-03 Thread Johannes Waldmann
I absolutely love to use Haskell when teaching 
(and I have several years of experience doing it).

And I absolutely dislike it when I have to jump through hoops 
to declare types in the most correct way, and in the most natural places.
This is hard to sell to the students. - Examples:


1. for explicit declaration of type variables, as in

reverse :: forall (a :: *) . [a] - [a]

I have to switch on RankNTypes and/or KindSignatures (ghc suggests).
C'mon, this has nothing to do with ranks per se. 
It's a type of a very simple function!
IMHO even Java/C# do this better (with slightly strange syntax,
but at least you get to declare the type variable).


2. for declaring types of local variables, as in

\ (xs :: [Bool]) - ...

I have to enable PatternSignatures (actually ghc suggests
ScopedTypeVariables but again there is no type variable in sight)
I need to do this often, to disambiguate properties for Smallcheck.

All of this just because it seemed, at some time, 
a clever idea to allow the programmer to omit quantifiers?
(I know, mathematicians do this all over the place, 
but it is never helpful, and especially not when teaching.)

I think that (1) implies (2): there could be no ambiguity about scopes 
(of typevars in patterns) if each typevar had to be introduced 
by explicit quantification. Then (in a pattern signature) 
a use could be distinguished from a declaration. 


Yes, the above is a rant. I can achieve what I want with some ghc options,
and perhaps my point is that these should be on by default -
or have better names, because presently, they are unintelligible to the
(beginner) student.





___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] mueval, interpreter options

2013-04-02 Thread Johannes Waldmann
What am I missing? 

I want to use mueval to read a file
that contains instance Serial m a = Serial m (Tree a)

(as in
http://hackage.haskell.org/packages/archive/smallcheck/1.0.2/doc/html/Test-SmallCheck-Series.html)

so I put in my call of mueval: 

let Right opts = M.interpreterOpts []
keepCurrentDir $ do
System.Directory.setCurrentDirectory d
I.runInterpreter $ Mueval.Interpreter.interpreter $ opts
{ M.timeLimit = 10 -- seconds?
, M.modules = Just [ Prelude
, Test.SmallCheck.Drivers, Test.SmallCheck.Series
, GHC.Generics ]
, M.namedExtensions = [ MultiParamTypeClasses
  , FlexibleInstances, DeriveGeneric ]
   

but it gives me MultiParamTypeClasses is not enabled on inputs like

{-# language MultiParamTypeClasses #-}

import  Test.SmallCheck.Series
import GHC.Generics

data Tree a = Null | Fork (Tree a) a (Tree a)
deriving Generic

instance Serial m a = Serial m (Tree a) where


I don't understand mueval's design anyway here:
do the interpreter options mean that these are automatically on,
or just that the source text will be allowed to switch then on?
(I'd prefer the latter.)


Thanks - J.W.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] package show needs QuickCheck2.6?

2013-03-19 Thread Johannes Waldmann
Hi, I noticed that compilation of mueval (recent: 0.8.2) breaks 
because show (0.5) cannot be built: 
it seems the type of Failure changed in QuickCheck (from 2.5 to 2.6).
The build succeeds with --constraint 'QuickCheck2.6' .



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] 2nd CfP: Haskell in Leipzig (Germany) (Deadline: March 31, Workshop: June 21)

2013-03-18 Thread Johannes Waldmann
Haskell in Leipzig! Now in its 8th year!

http://www.bioinf.uni-leipzig.de/conference-registration/13haskell/

Calling for papers, tutorials, performances!

... on Haskell in particular, but also functional programming
in general, and its extension by other paradigms.
We'd love to hear about news of the language, libraries, and tools;
Haskell applications in art and industry; and teaching Haskell.

Presentations should be given in German
but we can switch to English if requested.

Submission until: March 31
Notification: April 15
Workshop: June  21

Invited talk by  Christian Höner zu Siederdissen:
ADPfusion: high-performance dynamic programming in Haskell

Program comittee:
Ralf Dorn (Otto-Nagel-Gymnasium Berlin), Georg Martius (MPI Leipzig),
Petra Hofstedt (BTU Cottbus), Andres Löh (Well-Typed LLP),
Alf Richter (iba CG Leipzig), Uwe Schmidt (FH Wedel),
Peter Stadler (Univ. Leipzig), Henning Thielemann (Univ. Halle),
Janis Voigtländer (Univ. Bonn), Johannes Waldmann (HTWK Leipzig)




signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell-cafe] package dependencies should distinguish between API and implementation?

2013-02-25 Thread Johannes Waldmann
Package dependencies are modelled by a relation A depends-on B.

Shouldn't this in fact be two relations:
API-depends-on  and  implementation-depends-on?

(meaning that  A API-depends-on B  
iff some type of B is visible to the user of A)

So what we currently have is  implementation-depends-on
and  API-depends-on  is a sub-relation of that.

The point being the following: assume  

* A implementation-depends-on B.1
* not (A API-depends-on B.1), 

* U implementation-depends-on A
* U implementation-depends-on B = 2

Then U (indirectly) implementation-depends 
on two versions of B but it should still be safe?
(e.g., I can install B.3, re-compile U, but keep A)

Example: A = template-haskell, B = containers
(at least I don't see any mention of Data.Map/Set in  th's API,
I think the only dependency is in the implementation of PprM
http://hackage.haskell.org/packages/archive/template-haskell/2.8.0.0/doc/html/Language-Haskell-TH-PprLib.html
)

or in general, A (and B.1) are baked into ghc,
but there is some B.2/B.3 out there which U wants to use.

Or is this what already happens? (ghc would notice
that B.1.foo is different from B.2.foo.
cabal-install would warn, but proceed?
Then the effect of the proposal would just be 
to switch off these warnings in some cases?)

- J.W.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] package dependencies should distinguish between API and implementation?

2013-02-25 Thread Johannes Waldmann
Alexander Kjeldaas alexander.kjeldaas at gmail.com writes:

 There's a third relation, A API-ABI-depends-on B 
 iff some type of B is used in the hidden binary representation 
 that is used in backing the API visible to A.

Yes. Does this hold in the example I mentioned?

 I think the only dependency [ of template-haskell on containers ]
 is in the implementation of
PprMhttp://hackage.haskell.org/packages/archive/template-haskell/2.8.0.0/doc/html/Language-Haskell-TH-PprLib.html

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] package show needs upper version bound for smallcheck?

2013-02-22 Thread Johannes Waldmann

 Could the maintainers of show
 http://hackage.haskell.org/package/show-0.4.1.2
 please add some version bound ( 1  or similar)
 for the smallcheck dependency?

Thanks for the quick reaction.
show-0.5 now depends on smallcheck=1.0 
This works until the next API-breaking change in smallcheck ...

I admit that I find too-detailed upper bounds on dependencies
impractical as well, because they make upgrades really painful; 
so mostly I'm too lazy to write any bounds. 
Which is a bad idea, as the above example shows.

Perhaps a dependency on a major version (only) 
could be a reasonable policy (smallcheck == 1.*)


PS: Anyway the underlying problems that these policies
try to solve (did the API really change? 
did the observable behaviour of the implementation change?)
can only be solved by formal specification and verification.

(e.g., you write down the full specification of a sort function,
then a machine can check whether some library contains some function 
that claims to fulfil this spec, and it can also check
whether the claim holds true - if the implementation comes with a proof)

(Corollary: Agda would not need a package versioning policy
because it can solve these problems at the language level :-)




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] package show needs upper version bound for smallcheck?

2013-02-20 Thread Johannes Waldmann
Since smallcheck-1.0 contains API changes -

Could the maintainers of show
http://hackage.haskell.org/package/show-0.4.1.2
please add some version bound ( 1  or similar)
for the smallcheck dependency?

Thanks - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] CfP: (NEW!) Workshop Haskell and Rewriting Techniques HART 2013

2013-02-17 Thread Johannes Waldmann
Rewriting is the science of replacing equals by equals
and thus a very powerful method for dealing with equations.
There are strong connections between Haskell programming and rewriting.
Therefore, we announce a new workshop,

International Workshop on Haskell And Rewriting Techniques (HART 2013)
  http://www.imn.htwk-leipzig.de/HART2013/

to be held on June 27, in conjunction with RDP 2013, in Eindhoven.
(RDP contains RTA, the main rewriting conference.)

We plan a half day of discussions, in an informal setting,
on how Haskell and rewriting techniques and theories
can cross-fertilize each other.

Topics of interest are, for example,

equational reasoning and other rewriting techniques
for program verification and analysis;
lambda calculi and type systems for functional programs
and higher order rewriting systems;
rewriting of type expressions in the type checker;
rewriting of programs by refactoring tools, optimizers, code generators;
execution of programs as a form of graph rewriting;
template Haskell, introducing a rewriting-like macro language
into the compilation process.

This list of topics is non-exclusive. If you have a contribution that
connects Haskell and rewriting, then submit. When in doubt, contact a
member of the PC.

Program committee:

Alcino Cunha (U Minho)
Jürgen Giesl (RWTH Aachen)
Andy Gill (U of Kansas)
Johan Jeuring (U Utrecht)
Keisuke Nakano (UEC Tokyo)
Kristoffer H Rose (IBM Watson) (co-chair)
Christian Sternagel (JAIST)
Janis Voigtländer (U Bonn)
Johannes Waldmann (HTWK Leipzig) (co-chair)

Dates:

May 6: deadline for submissions
May 20: notification of acceptance
June 27: workshop

Submission and Proceedings:

Two categories of submissions are invited:

Extended abstracts. Presenting original research,
and also preliminary reports of work in progress.
Will be included in the proceedings.
Presentation-only papers. Describing work recently published
or submitted. Will not be included in the proceedings.

Papers should be at most 5 pages in length,
and should use the easychair.cls style.
Submission is handled through the EasyChair HART2013 page,
https://www.easychair.org/conferences/?conf=hart2013

In line with the informal style of the workshop,
the reviewing of submissions will be light.

When accepting and scheduling presentations,
preference will be given to original research.

Proceedings will be made available electronically at the workshop.




signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell-cafe] how to release (on hackage) a package that needs foreign libs?

2013-02-16 Thread Johannes Waldmann
What is the recommended approach for publishing (on hackage)
a package that depends on external libraries?

In my case, the current version of
http://hackage.haskell.org/package/satchmo
(sources at https://github.com/jwaldmann/satchmo)

depends on minisat-haskell-bindings (in Haskell),
minisat-c-bindings (in C), and minisat (C++),
all from https://github.com/niklasso/

My guess is that this would require that the external libraries
are packaged (deb, rpm?), then hackage gods install them,
and only then, my package will be built (and docs will be shown)?

- J.W.



signature.asc
Description: OpenPGP digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell] Haskell in Leipzig (Germany) : call for papers, tutorials, performances

2013-02-12 Thread Johannes Waldmann
Haskell in Leipzig! Now in its 8th year!

http://www.bioinf.uni-leipzig.de/conference-registration/13haskell/

Calling for papers, tutorials, performances!

... on Haskell in particular, but also functional programming
in general, and its extension by other paradigms.
We'd love to hear about news of the language, libraries, and tools;
Haskell applications in art and industry; and teaching Haskell.

Presentations should be given in German
but we can switch to English if requested.

Submission until: March 31
Notification: April 15
Workshop: June  21

Invited talk by  Christian Höner zu Siederdissen:
ADPfusion: high-performance dynamic programming in Haskell

Program comittee:
Ralf Dorn (Otto-Nagel-Gymnasium Berlin), Georg Martius (MPI Leipzig),
Petra Hofstedt (BTU Cottbus), Andres Löh (Well-Typed LLP),
Alf Richter (iba CG Leipzig), Uwe Schmidt (FH Wedel),
Peter Stadler (Univ. Leipzig), Henning Thielemann (Univ. Halle),
Janis Voigtländer (Univ. Bonn), Johannes Waldmann (HTWK Leipzig)



signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell-cafe] Text.PrettyPrint.HughesPJ is sloooow (and wl-pprint-text is fast)

2013-02-04 Thread Johannes Waldmann
I was running into serious performance problems when printing moderately sized
Doc and Xml data (HaXml goes via Doc).

So I replace Text.PrettyPrint.HughesPJ with Text.PrettyPrint.Leijen.Text,
and patched the HaXml printer in the same way. Now it is running much faster.

This confirms some of the comments here:
http://stackoverflow.com/questions/9761507/which-pretty-print-library

If you want to see for yourself, here is a test case.
It constructs and prints a document tree with about 10^4 nodes,
rendered to an Xml document with 10^6 (nonblank) chars:
https://github.com/jwaldmann/haskell-tpdb/blob/master/test/speed.hs

Of the 4 output methods (fin the main program), only one takes  1 second.
Rendering via HughesPJ needs extra stack (!) and takes about 20 seconds.
Rendering via Text.XML.HaXml.ByteStringPP seems much slower still (!)

(ghc-7.6.2, pretty-1.1.1.0, HaXml-1.23.3, wl-pprint-text-1.1.0.0,
amd64, fedora 18, kernel 3.7.4)



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Why should we write a `par` b `pseq` (f a b) instead of a `par` b `par` (f a b)?

2013-01-20 Thread Johannes Waldmann
Petr P petr.mvd at gmail.com writes:

 Is there any reason to use
   a `par` b `pseq` (a + b)
 instead of
   a `par` b `par` (a + b)

(better ask this on parallel-haskell?)

 It seems to me that the second variant would work as well: 
 The main thread would block on one of the sparked computations,

I think the main thread would not block at all.
Instead, it would start to evaluate  a  (or  b) right away, 
since (+) is strict, thus duplicating the work of
a spark, and causing the spark to fizzle.

Why does it work in   a `par` b `pseq` a+b ?
I am not even sure - there might be a race condition:
assume that evaluation (to WHNF) of  b (and of  a)  takes a long time,
but  b  (in the main thread) finishes shortly 
before  a  does (in the spark), 
then the spark still fizzles and its work was in vain?

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] using/building ghc head?

2013-01-14 Thread Johannes Waldmann
Hi. I wanted to do some experiments with GHC Head but

* I cannot use the snapshot bindist:

./configure --prefix=/opt
checking for path to top of build tree... ./configure: line 2138:
utils/ghc-pwd/dist-install/build/tmp/ghc-pwd-bindist: No such file or directory

* I cannot compile snapshot from source (with ghc-7.6.1)

  utils/haddock/src/Haddock/Convert.hs:201:42:
Not in scope: data constructor `HsBang'

this is for ghc-7.7.20121213 (date Dec 21), 
which is the latest snapshot according to
http://www.haskell.org/ghc/dist/current/dist/

what am I missing? - J.W.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Cannot read a large integer on linux

2013-01-14 Thread Johannes Waldmann
 read 18780189038289e49 :: Integer

this might be related:

http://hackage.haskell.org/trac/ghc/ticket/5688




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Example programs with ample use of deepseq?

2013-01-08 Thread Johannes Waldmann
http://article.gmane.org/gmane.comp.lang.haskell.parallel/340

(with follow-up message about rseq = rdeepseq)

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Hoogle index completeness

2012-12-19 Thread Johannes Waldmann

 Hayoo has them all [ .. ]

but Hoogle is better with types? 

it seems Hayoo only does exact (string?) match on types,
while Hoogle also knows about polymorphisms, permutations etc.

E.g., search for String - Int. 
Hoogle finds length :: [a]- Int  as well, 
I think Hayoo doesn't.

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Exploring Programming Language Theory

2012-12-09 Thread Johannes Waldmann
Stephen Tetley stephen.tetley at gmail.com writes:

 Also Franklyn Turbak and David Gifford's Design Concepts for
 Programming Languages is very good (and new!) but huge.

Yes! I like that book very much, and I use it for teaching
semantics and compilation of programming languages.

Semantics - by writing interpreters, in several domains.
The book avoids the M word, but of course it is actually
the Identity monad, the State monad, the CPS monad etc.
(I guess it should really be presented via monad transformers, though.)

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



[Haskell] CfP: Conf. Rewriting Techniques and Applications RTA 2013 -- deadline February 1

2012-12-07 Thread Johannes Waldmann
RTA http://rta2013.few.vu.nl/cfp.html
Deadline: February 1, Conference: June 24-26, Eindhoven NL

Dear all,

instead of copying the complete CfP,
I'd like to specifically address the Haskell community:

There are strong connections between (functional) programming
and rewriting. For example, the execution of a program is a form
of graph rewriting; the type checker rewrites type expressions;
the code generator rewrites the program (for optimization).

The conference on Rewriting Techniques and Applications is the major
forum for the exchange of new ideas on all matters related to rewriting,
covering the whole range from foundations to applications.
And you should take the opportunity to contribute your ideas.

Note: If  you = Simon Peyton Jones,  then you are the invited speaker.
Else, follow the usual process of submitting a paper by February 1.

Best regards, on behalf of the RTA programme committee,

Johannes Waldmann.



signature.asc
Description: OpenPGP digital signature
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell-cafe] hsql-mysql encoding issues

2012-10-24 Thread Johannes Waldmann
Daniel van den Eijkel dvde at gmx.net writes:

 ... but I use HDBC and I'm happy with it. 

including its handling of character encodings?

(That is, do you have, e.g., texts with umlauts in your data?)




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] hsql-mysql encoding issues

2012-10-23 Thread Johannes Waldmann
Hi. 

I am using hsql-(mysql-)1.8.2
When compiled with ghc-7.6, the resulting executable
does not seem to be able to read strings from the DB correctly
(umlauts do vanish)
while it  worked with hsql-(mysql-)1.8.1 and ghc-7.4.

the mysql server says (show variables)

| character_set_client| latin1  | 
| character_set_connection| latin1  | 
| character_set_database  | latin1  | 
| character_set_filesystem| binary  | 
| character_set_results   | latin1  | 
| character_set_server| latin1  | 
| character_set_system| utf8| 

hsql is using type String all over the place,
while it should be ByteString?

Internally, Database.HSQL.Types.SqlBind 
uses Foreign.C.String.peekCStringLen .
Did the behaviour of this function change?

hsql is quite old, but so is my application.
Assuming I find the time to rewrite my code (not likely) -
what DB binding should I rather be using? 

Thanks - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Solving integer equations in Haskell

2012-10-15 Thread Johannes Waldmann
Justin Paston-Cooper paston.cooper at gmail.com writes:

 Can anyone suggest a library written in Haskell which can solve equations 
 of the form xM(transpose(x)) = y, where x should be an integer vector, 
 M is an integer matrix and y is an integer?

when in doubt, use brute force: 

write this as a constraint system 
(in QF_NIA or QF_BV logics) and solve with Z3.

Use SBV to write the constraints programmatically
http://hackage.haskell.org/package/sbv

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] CPS Streams

2012-10-10 Thread Johannes Waldmann
jeff p mutjida at gmail.com writes:

 I've always thought that the essence of iteratees is just CPS 

for sure, at some level of abstraction this ought to be true,
since CPS simulates call-by-value in a call-by-name language,

cf. Gordon Plotkin: Call-by-Name, Call-by Value and the Lambda Calculus
TCS , Vol. 1, pp. 125-159, http://homepages.inf.ed.ac.uk/gdp/publications/

and the purpose of  iteratee is to  provide strict [...] I/O 
http://hackage.haskell.org/package/iteratee-0.8.9.4

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ghc-mtl, hint, mueval for ghc-7.6 ?

2012-10-08 Thread Johannes Waldmann
While porting some code to 7.6, I'm stuck here:

Preprocessing library ghc-mtl-1.0.1.1...
[1 of 1] Compiling Control.Monad.Ghc ( Control/Monad/Ghc.hs,
dist/build/Control/Monad/Ghc.o )

Control/Monad/Ghc.hs:29:48:
No instance for (DynFlags.HasDynFlags Ghc)

this seems to block hint and mueval.
Is there a known workaround for this problem,
or a sugggested replacement package?

Thanks - J.W.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] referential transparency? (for fixity of local operators)

2012-10-06 Thread Johannes Waldmann
wren ng thornton wren at freegeek.org writes:

 As for whether the default should be infix 9 instead of infixl 9 ...

that was exactly the point of my message. - J.




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] referential transparency? (for fixity of local operators)

2012-10-05 Thread Johannes Waldmann
I was really surprised at the following:

*Main 1 + 2 * 3
7

*Main ( \ (+) (*) - 1 + 2 * 3 ) (+) (*)
9

because I was somehow assuming that either

a) the Prelude fixities of the operators are kept
b) or they are undefined, so the parser rejects.

but the Haskell standard says Any operator lacking a fixity declaration 
is assumed to be infixl 9. This really should be infix 9?




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE: Sylvia, a lambda calculus visualizer

2012-09-28 Thread Johannes Waldmann

 Sylvia is a lambda calculus visualizer. 

Such a thing is certainly nice to have.
I use this one for teaching: 

http://joerg.endrullis.de/lambdaCalculator.html




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] GHC 6.13 and GHC 7.6 in parallel on Linux

2012-09-28 Thread Johannes Waldmann

How is it possible to run 2 different versions of GHC

if you installed the binary packages in standard locations,
look in /usr/local/bin/ghc* : you have  ghc-6.12.3, ghc-7.6.1  etc.
and each one knows how to find their libraries.
you can even say cabal install --with-ghc=ghc-7.6.1 foo




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Wanted: Haskell binding for libbdd (buddy)

2012-08-21 Thread Johannes Waldmann
Peter Gammie peteg42 at gmail.com writes:

 My hBDD bindings are on Hackage. 

Great!  Perhaps add category: logic in the cabal file?

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] Wanted: Haskell binding for libbdd (buddy)

2012-08-20 Thread Johannes Waldmann
Are there any Haskell bindings for BDD libraries
(reduced ordered binary decision diagrams)?

E.g., it seems buddy is commonly used
http://packages.debian.org/squeeze/libbdd-dev
and it has an Ocaml binding.

Yes, there is http://hackage.haskell.org/package/obdd
but I need better performance (with the same API, ideally).

Thanks - J.W.

PS: I wonder where performance goes out the window  ...
I suspect  Map (Int,Int) whatever should really be
a hashtable but I don't like it in IO, it should be in ST?




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] ghc-7.4 on CentOS-5.8 ?

2012-06-28 Thread Johannes Waldmann
Tim Docker twd2 at dockerz.net writes:

  I need to use a more recent version of gcc 

Thanks! Yes, that seems to be it. 

When building  gcc  didn't work, it took  me a while
to figure out that I was running into this bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51935
so I am using mpfr-3.0.1 (instead of 3.1.0).




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ghc-7.4 on CentOS-5.8 ?

2012-06-27 Thread Johannes Waldmann
Dear all, 

I need a recent ghc on a not-so-recent (?) CentOS.

The ghc binary package (7.2 or 7.4) does not work
because of a mismatch in the libc version.

ghc-7.0 is working but when I use it to compile 7.4,
it breaks with some linker error (relocation R_X86_64_PC32 ...)
it also suggests recompile with -fPIC but I don't see how.

(In this particular case, I absolutely cannot change/update the OS.)

Thanks, J.W.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Request for optimizing help.

2012-06-25 Thread Johannes Waldmann
First, why do you think your code is non-optimal?

you don't show your main program, so we don't know what you're measuring.

Just by looking at some types (and not analysing the algorithm):

11 data FilterState a = FilterState {
14   , taps :: [a] -- current delay tap stored values

the State really is taps only. (as  and  bs don't change ?)
so taps should be separate.

25         newTaps = wk : init (taps s)

init could be expensive (linear in the list length)
(but you have linear cost elsewhere, so maybe it does not hurt)

Use some different sequence type (instead of list)?
It seems you actually want a strict sequence (while (:) is lazy)
of strict values.

31 runFilter :: Kernel a - FilterState a - [a] - IO ([a], FilterState a)

why IO? there's no IO in the implementation. it looks like a simple fold.

the type is polymorphic, so ghc needs to be able 
to inline the dictionary arguments. (I think that it means that
it wants to see all the code when compiling main, but I'm not sure.
Experts can tell by studing  -ddump-simpl  output.)




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] not enough fusion?

2012-06-24 Thread Johannes Waldmann
Dear all, 

while doing some benchmarking (*)
I noticed that function  s1  is considerably faster than  s2
(but I wanted  s2  because it looks more natural)
(for n = 1,  s1 takes 20 s, s2 takes 13 s; compiled by ghc-7.4.2 -O2)

s1 :: Int - Int
s1 n = sum $ do
x - [ 0 .. n-1 ]
return $ sum $ do
y - [ 0 .. n-1 ]
return $ gcd x y
  
s2 :: Int - Int   
s2 n = sum $ do 
  x - [ 0 .. n-1 ]
  y - [ 0 .. n-1 ]
  return $ gcd x y

I was expecting that in both programs, 
all lists will be fused away (are they?)
so the code generator essentially can produce straightforward
assembly code (no allocations, no closures, etc.)


For reference, I also wrote the equivalent imperative program
(two nested loops, one accumulator for the sum)
(with the straightforward recursive gcd) 
and runtimes are (for same input as above)

C/gcc: 7.3 s , Java: 7.7 s, C#/Mono: 8.7 s


So, they sort of agree with each other, but disagree with ghc.
Where does the factor 2 come from? Lists? Laziness? 
Does  ghc  turn the tail recursion (in gcd) into a loop? (gcc does).
(I am looking at  -ddump-asm  but can't quite see through it.)


(*) benchmarking to show that today's compilers are clever enough 
such that the choice of paradigm/language does not really matter
for this kind of low-level programming.






___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Requesting Feedback: I Love Haskell, but can't find a place to use it

2012-05-31 Thread Johannes Waldmann
Jonathan Geddes geddes.jonathan at gmail.com writes:

 I love Haskell. It is my absolute favorite language. 
 But I have a very hard time finding places where I can actually use it!

have you considered your head as such a place that should be easy to find.

even just for specifying things, Haskell is tremendously useful.
even if you don't write programs, but just their types.
you can express your software design that way,
and have it formally verified (by the compiler's type checker).

best regards, J. W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Formalisation for types of monads

2012-05-22 Thread Johannes Waldmann
Ertugrul Söylemez es at ertes.de writes:

 Note about []:  Don't even mention foldl.  The folding combinator
 for lists is foldr, period.  

Amen.

I ignore  foldl  in teaching but it will appear
under the name of  IEnumerableT.Aggregate(z, f)  (from Linq).

Note, the Linq designers got the argument order right
(put the Nil case first, and the Cons case later).

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Threads and hGetLine

2012-05-02 Thread Johannes Waldmann

 There are two threads, one which is waits on input via 
 hGetLine
 and another, which should terminate this thread or close this handle.

like this? The trick is to fork the blocking call (hGetLine)
and wait on an MVar. That way, the kill signal can be handled:

{-# language PatternSignatures #-}

import Control.Concurrent
import Control.Concurrent.MVar
import Control.Exception
import System.IO

main = do
  pid - forkIO $ do
s - wawiter
putStrLn s
  threadDelay $ 5 * 10^6
  killThread pid
  
waiter = do  
  v - newEmptyMVar
  forkIO $ do s - hGetLine stdin ; putMVar v s
  readMVar v `Control.Exception.catch` 
\ (e :: AsyncException ) -  return killed

PS: and I refuse to use the ScopedTypeVariables pragma
since obviously there are no type variables.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] static linking with ghc?

2012-04-22 Thread Johannes Waldmann
Hi.

I want to produce a statically linked executable.
I am trying 'ghc  --make -fforce-recomp -static -optl-static  Main'

but it gives lots of  errors like 
(.text+0xfa): undefined reference to `pthread_mutex_unlock'
collect2: ld returned 1 exit status

A similar thing is mentioned here (see Caveat)
http://www.haskell.org/haskellwiki/Web/Literature/Static_linking

The ghc user guide talks a great length about shared libs
http://www.haskell.org/ghc/docs/latest/html/users_guide/using-shared-libs.html
but I don't see anything on how to switch this off.

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] static linking with ghc?

2012-04-22 Thread Johannes Waldmann
Scott Lawrence bytbox at gmail.com writes:
 
 Adding -optl-pthread fixes it for me.

great! in my case, I also needed to add '-pgml g++'
and together, this seems to work. Thanks.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANN: signed-multiset-0.1

2012-04-18 Thread Johannes Waldmann
Stefan Holdermans stefan at vectorfabrics.com writes:

 This package provides an efficient implementation of so-called
 signed multisets, which generalise multisets by allowing for
 negative membership.

SignedMultiset a = Data.Map.Map a Integer

so what do I gain by using your library?
(what is the API difference?)

Perhaps you could state this clearly at the top
of the package description (visible on hackage).

I sometimes find I want a type Map with default
(the default value is stored when the Map is constructed,
and you never put keys in there that map to this default).

Best - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] is this an arrow?

2012-04-13 Thread Johannes Waldmann
Dear Cafe, I have the following types:

type Computer a b =  ( a - IO ( Maybe b ) )
type Transformer a b c d =  Computer a ( b, c - d )

For example, a SAT solver:
minisat :: Computer CNF Assignment,

and when I use it to solve an application problem
via transformation to SAT, I need
t :: Transformer Problem SAT Assignment Solution

Now - what is the proper abstraction? Is this an arrow somehow?
And is there already a type and a library that would
contain useful combinators like some of these:

http://autolat.imn.htwk-leipzig.de/gitweb/?p=box;a=blob;f=src/exotic/Strategy.hs;h=238b5f55fabf356e0ce484d0f6b882a06d6e6cfc;hb=HEAD

Thanks - J.W.



signature.asc
Description: OpenPGP digital signature
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] mueval leaving behind tmp files

2012-04-02 Thread Johannes Waldmann
The following program prints   Right (test,Bool,True)
as it should, but it leaves behind in /tmp 
two files (name is a long string of digits)
and an empty directory (name is ghcN_N).
... and it deletes the input file (/tmp/Main.hs).

That's not nice. Ideally, I would want to read input
from a String (instead of the file), and not write to disk at all.
But cleaning up properly would be OK as a work-around.


import Language.Haskell.Interpreter
import Mueval.Interpreter
import Mueval.ArgsParse

main = do
writeFile /tmp/Main.hs test = True
result - runInterpreter $ interpreter $ Options 
{ timeLimit =1, modules =Just [Prelude], expression =test
, loadFile =/tmp/Main.hs, user=what, printType =True
, extensions =False,namedExtensions = []
, noImports =False, rLimits =False, help=True
}
print result

ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.1

ghc-pkg list| egrep 'mueval|hint'
hint-0.3.3.4
mueval-0.8.1.1

uname -a
Linux octopus 3.0.0-16-generic #29-Ubuntu SMP Tue Feb 14 12:48:51 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] mueval leaving behind tmp files

2012-04-02 Thread Johannes Waldmann

 mueval-0.8.1.1

this is actually 0.8.2 


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ghci can't load file whose name contains non-ASCII chars?

2012-03-28 Thread Johannes Waldmann
I must be making some obvious mistake here,
but I'm not seeing it. The file name contains O-umlaut,
and the OS handles it fine, but ghci does not like it
(although it accepts umlauts in the contents of the file
(UTF-8) e.g., as a module name)

$ cat fÖÖbar.hs 
main = print $ product [1..100]

$ ghci fÖÖbar.hs 
GHCi, version 7.4.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.

no location info: can't find file: f??bar.hs
Failed, modules loaded: none.


this is on a standard ubuntu install (11.10 and 11.04) with 

$ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=en_US.UTF-8
...

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.1
$ uname -a
Linux octopus 3.0.0-16-generic #29-Ubuntu SMP Tue Feb 14 12:48:51 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] for = flip map

2012-03-28 Thread Johannes Waldmann
Good: we have  mapM, and we have forM ( = flip mapM )  .

Sure this is just a convenience, and indeed
forM xs $ \ x - do ... is quite handy,
especially if xs is really small, 
and ... is some larger expression.

Bad: we have  map,  but we are missing:  for ( = flip map ) .

The function is very convenient, for the same reasons as above.
I can't remember how often I typed for = flip map in a source file.
I never put this definition in a module either, 
since the import statement would be longer than the definition.

So, I'm all for for .  

In Data.List? In the Prelude? (Should put it right next to map.) 

- J.W.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Polymorphic addition function with variable number of arguments?

2012-03-13 Thread Johannes Waldmann
 Can someone tell me why this is not working 

that someone is actually ghci:

Prelude instance (Num a, Add a b) = Add (a - b) where add x y = add (x + y)

interactive:8:30:
Expecting one more argument to `Add (a - b)'
In the instance declaration for `Add (a - b)'




___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Polymorphic addition function with variable number of arguments?

2012-03-13 Thread Johannes Waldmann
The problem seems to be that numeric literals are polymorphic.
With your code, this works:

*Main let x = 8 :: Int
*Main add x x x :: Int
24
*Main add x x :: Int
16



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE : Leksah 0.12

2012-03-11 Thread Johannes Waldmann
Sounds good - but my build fails on ubuntu-11.10:

Building gtksourceview2-0.12.3...
Preprocessing library gtksourceview2-0.12.3...
./gtksourceview2.h:10:48: fatal error: gtksourceview/gtksourceundomanager.h: No
such file or directory
compilation terminated.
gtk2hsC2hs: Error during preprocessing

on ubuntu-11.04:

Building gtksourceview2-0.12.3...
Preprocessing library gtksourceview2-0.12.3...
dist/build/Graphics/UI/Gtk/SourceView/Types.h:1:28: fatal error:
gtksourceview2.h: No such file or directory
compilation terminated.
gtk2hsC2hs: Error during preprocessing custom header file

- J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANNOUNCE : Leksah 0.12

2012-03-11 Thread Johannes Waldmann

 cabal install --extra-include-dirs=. gtksourceview2

yes this works. thanks! - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] help with safecopy + acid-state

2012-01-31 Thread Johannes Waldmann

  Can I really rename  old.T = new.T_orig ?
  It looks as if then tries to load the wrong acid-state snapshot.
 
 The name of your data type doesn't matter as acid-state doesn't store
 that on the disk.

I think it does - because file names are  state/T/*.log   and so on?

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Stuck on HXT basics

2012-01-30 Thread Johannes Waldmann

 Couldn't match expected type `Data.Tree.NTree.TypeDefs.NTree XNode'
 with actual type `hxt-8.5.4:Data.Tree.NTree.TypeDefs.NTree
 hxt-8.5.4:Text.XML.HXT.DOM.TypeDefs.XNode'

perhaps you have installed several (conflicting) versions of packages.

I use hxt = 9, and here is some example code:
http://dfa.imn.htwk-leipzig.de/cgi-bin/gitweb.cgi?p=tpdb.git;a=tree;f=TPDB/XTC;hb=master

Best - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] help with safecopy + acid-state

2012-01-30 Thread Johannes Waldmann
Felipe Almeida Lessa felipe.lessa at gmail.com writes:

  data T_orig = T_orig Foo
  $(deriveSafeCopy 0 'base ''T_orig)
  data T = T Foo Bar
  $(deriveSafeCopy 0 'extension ''T)
  instance Migrate T where type MigrateFrom T = T_Orig ...
 
 As you can read from deriveSafeCopy's documentation [1], you need to
 increase the version of your data type (e.g. change that zero to one).

Thanks - which zero? (there are two of them.)

and how does it play together with Data.Acid?

Can I really rename  old.T = new.T_orig ?
It looks as if then tries to load the wrong acid-state snapshot.

Best - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] help with safecopy + acid-state

2012-01-27 Thread Johannes Waldmann
Dear all,

I can't quite get safecopy to work with acid-state:

old version of code :

data T =  T Foo
$(deriveSafeCopy 0 'base ''T)

new version :

data T_orig = T_orig Foo
$(deriveSafeCopy 0 'base ''T_orig)
data T = T Foo Bar
$(deriveSafeCopy 0 'extension ''T)
instance Migrate T where type MigrateFrom T = T_Orig ...

but when my (new) application reads the state from disk
(written by the old application) I get
Could not parse saved checkpoint due to the following error:
Failed reading: Duplicate version tags: [0,0]

When I change the version number in deriveSafeCopy, I get
Failed reading: safecopy: Map: Cannot find getter associated
with this version number: Version {unVersion = 2}

I don't even know where the 2 comes from.

Any hints appreciated - J.W.



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] Need advice: Haskell in Web Client

2012-01-18 Thread Johannes Waldmann
dokondr dokondr at gmail.com writes:

 It would be great if I could write Web client code in pure Haskell [...]

not exactly Haskell, but you may want to have a look at OPA http://opalang.org/ 

the idea is that you write all of the application in one 
(statically typed, functional) language
and the framework takes care of distributing the code to server and client
(and on the client, it shows up as JavaScript)

J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] haxr standalone server?

2012-01-05 Thread Johannes Waldmann
How could I use haxr (http://www.haskell.org/haskellwiki/HaXR)
to build a stateful server? 

It should listen on some port,
and fork threads (inside Haskell land) to handle incoming calls.
Any of the Haskell web frameworks can do this?

I guess this is the same question as:
http://www.haskell.org/pipermail/haskell-cafe/2009-December/071185.html

Thanks - J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] haxr standalone server?

2012-01-05 Thread Johannes Waldmann
Michael Snoyman michael at snoyman.com writes:

 It seems like the issue is that HaXR uses CGI, whereas you want to tie
 it in with a web server, correct? 

Yes.

 There's a deprecated package[1] to
 allow CGI apps to be run on any WAI handler (such as Warp). 

why deprecated? what's the problem with that package?

J.W.


___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] cabal install --hyperlink-source ?

2011-12-02 Thread Johannes Waldmann
Hello.

I can do cabal install --enable-documentation
which is nice because it does
configure, build, haddock and copy in one go,

but I don't see how to pass options
from cabal install to  cabal haddock (e.g., --hyperlink-source)

Any hints appreciated, J.W.



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] Is SmallCheck maintained?

2011-11-22 Thread Johannes Waldmann

 On Mon, Nov 14, 2011 at 9:54 AM, Roman Cheplyaka roma at ro-che.info 
 wrote:

  Does anyone currently work on Test.SmallCheck?

not working on, but I'm using it in teaching.

The one change that I would want in SmallCheck
is that Serial should use size, not depth
(that is, not take the max over the subtrees, but the sum).
I think this would help somewhat against the explosion of test sets.

Yes, I can write Serial instances as I fancy
but it's the default instances  (for tuples, lists)
that I think should be changed. 
At least, an alternative should be provided.

On the other hand, that could easily be forked off as a student project,
so there is no hurry.

Best, Johannes.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] FFI / enums

2011-11-07 Thread Johannes Waldmann
Does this work with  ghc -XForeignFunctionInterface ?
http://en.wikibooks.org/wiki/Haskell/FFI#Enumerations

I am getting a syntax error right after #{.
But then, the description is for hsc2hs (not  ghc).

And it mentions macros, while C meanwhile has real enums.
Well, at leat one can write  enum match { foo, bar }.

The FFI Addendum does not mention enums at all.

So - what's the agreeable way to do this? - Thanks, J.W.



___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


  1   2   3   4   5   6   >