to compete for the award. SoTeSoLa is a fun-oriented research
event.
Regards,
Jean-Marie Favre (Research 2.0 Chair)
Ralf Laemmel (General Chair, SoTeSoLa)
Vadim Zaytsev (Hackathon Coordination)
___
Haskell mailing list
Haskell@haskell.org
http
Dear Haskell-ers,
SoTeSoLa is not a Haskell- or FP-centric event, but Haskell-ers are
very much encouraged to represent their technological space at the
school. In fact, I know for a reason that some Haskell-ers will be
there, but the more the better. I expect that Haskell will play a role
in one
PhD/PostDoc opening in programming techniques and technologies in the
Software Languages Team [1] in Koblenz.
Applicants can safely assume that functional programming plays a huge
role in this.
The application deadline is 31 Aug.
A German description of formalities is available [2].
One
Dear Haskellers,
this summer school contains bits of formal methods and language design
that typically intersect very well with interests on this list.
Looking forward to meet some of you in Koblenz.
Ralf
8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CALL FOR
Disclaimer: this is an Xmas gift as opposed to serious stuff.
http://professor-fish.blogspot.com/2009/12/major-breakthrough-in-image-processing.html
Greetings,
Ralf
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
On Mon, Jun 1, 2009 at 8:20 PM, David Fox da...@seereason.com wrote:
Is there a Scrap Your Boilerplate guru out there who could whip up a three
argument version of gzip for me?
This can be done of course (untested but type-checked code follows).
Left wondering what the scenario might be :-)
Thank you! What I have in mind is three way merging - you have two
revisions based on the same original value, and you need to decide whether
they can be merged automatically or they need to be merged by a user. You
only have a real conflict when both revisions differ from the original and
AM, Ralf Laemmel rlaem...@gmail.com wrote:
{-
Recursive instance heads as in ...
instance C0 (x,Bool) = C0 x
... are Ok if we allow for typechecking scheme as described in SYB with
class.
The main idea is to assume C0 x in proving the preconditions of the
body of the clause.
This is also
{-
Recursive instance heads as in ...
instance C0 (x,Bool) = C0 x
... are Ok if we allow for typechecking scheme as described in SYB with class.
The main idea is to assume C0 x in proving the preconditions of the
body of the clause.
This is also works for mutual recursion among type classes and
[Deadline: 20th March]
Regards,
Ralf Laemmel
Satellite Chair GPCE 2008
PS: The paper deadline for GPCE is in May.
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell
Given two type classes A t and B t, I'd like the typechecker to derive
different A t instances depending exactly on whether t is an instance of
B. In other words, is it possible to define a class (actually a type-level
function) IsB t f such that:
A GHC-like type system is in principle
Isaac wrote:
I wonder whether it would be safe for the compiler to infer simply by
the default methods mentioning each other in a cycle. It might miss
some cases when (probably involving laziness) the default methods
actually terminate and form an intended set of implemention, and warn
when
You did not say anything that's imprecise about mentioning each other
in a cycle, just the well-known fact that it's not equivalent to total
termination checking (in fact, it's neither fully an overestimate nor
underestimate of termination -- it's just an estimate that's likely to
be right
[You can actually check that indeed Haskell folks have contributed to this
workshop in the past. -- Ralf]
Call for papers:
FOAL: *F*oundations *o*f *A*spect-Oriented *L*anguages A one day workshop
affiliated with AOSD 2008 in Brussels, Belgium, on 31 March or 1 April 2008.
Themes and Goals
Hi Simon (PJ),
cc Simon (DF),
I rather reckon we are facing a bug here.
The attached minimalised Foo.hs shows the offending code pattern.
With GHC 6.2 we get *** Exception: loop
With GHC 6.4 we get(still waiting for the rest of the string)
The scenario is about class/instance-head-level
It is called gunfold rather than gunfoldl
as you will see when you browse the Data.Generics.Basics.
Also, your gunfold code looks like it will not work.
Here is a simple example for Maybe:
gunfold k z con =
case constrIndex con of
1 - z Nothing -- no children
2 - k (z
Hi Simon SD,
cc Simon PJ,
(Since the _evaluation_ does not terminate (rather than type checking),
this seems to imply that evaluation-time dictionary construction does
not terminate. Right?)
Anyhow, do this change, and your code works.
diff SDF.save SDF.hs
10c10
class (Data (DictClassA a) b,
Assoc types and GADTs are great but
I am still too fond of encoding extensible datatypes with (open) classes.
I contributed to some related discussion at comp.compilers a while ago [1].
The Haskell code samples are worth sharing (because they are so simple):
read it, i.e., before a
first cup of coffee.
Sorry.
Regards,
Stefan
___
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
Stratego). All in all, this more like try
and catch or exception handling rather than calculations returning
multiple values.
Ralf
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
___
Haskell-Cafe mailing list
Haskell-Cafe
Georg Martius wrote:
I was playing around with Scap you Boilerplate and realised some
missing instances of Typeable and Data. Is there a particular reason
why there is no Data Double instance?
There has been a Double instance under CVS (GHC HEAD) since March 2004.
It will be included in GHC
Special Issue on
Foundations of Aspect-Oriented Programming
Science of Computer Programming
Last Call For Contributions
[
Please note the new deadline: 1 March 2005.
This deadline caters for synchronisation with the FOAL 2005 workshop.
See text below.
]
Guest Editors: Pascal Fradet and
Timely question. :-)
GHC supports lexically scoped type variables.
And this support has just been _extended_ to be readily useful for you
(see discussion on the ghc list just a few days back).
With GHC CVS HEAD the following program works fine.
(Note that I removed the inner Num constraint.)
{-#
Major apologies for this repeated plug for HList.
Anyway, HLists [1] are *exactly* designed for this sort of problem.
Well, one can also use existential quantification + bounded polymorphism;
with the shapes benchmark providing a good example [2]. The trade-offs are
explored a little bit on the
Hi,
I refer to Section 5.3 (title see subject line) in
Type classes: exploring the design space
by Simon Peyton Jones, Mark P. Jones and Erik Meijer
HW 1997.
There it is argued very briefly that a type system
with controlled scope of instances risks coherence.
Likewise, in Wadler's and Blotts
FOAL: Foundations of Aspect-Oriented Languages
A one day workshop affiliated with AOSD 2005 in Chicago, USA, on Monday,
14 March 2005.
Themes and Goals
FOAL is a forum for research in foundations of aspect-oriented
programming languages. Areas of interest include but are not
Hi Simon and others,
this is an interesting feature.
The three attached files are largely the same.
They don't do too weird stuff except a little bit
instance-constraint-level recursion among classes.
(and some use of undecidable instances ...)
(There are embedded comments in the files.)
(I used
Hi,
foo _ = undefined
works fine.
Otherwise the poor little a has no chance to get disambiguated.
... Ambiguous type variable `a' in the top-level constraint ...
Ralf
Stefan Holdermans wrote:
Hi,
Just out of curiosity (I cannot come up with a practical example):
Why doesn't the following piece
Hi,
you do realise that -fallow-incoherent-instances is enabling a hell.
What mostly happens is that the most general instance is chosen.
Which explains the error here: Say the confusing instance is chosen
(because it is generic) and hence the type checker tries to establish the
Confuse
Adam Zachary Wyner wrote:
Question -- is this all there is to the issue, or is there something more?
Apologies in advance for not understanding the math better here.
You can compare functions in a pointwise fashion,
which does not work (other than approximatively) for infinite domains.
This is the
Instance selection and thereby overlapping resolution
is *independent* of constraints. It is defined to be purely
syntactical in terms of instance heads. See the HList paper
for some weird examples.
Ralf
Graham Klyne wrote:
The reported overlapping instance is [Char], which I take to be
derived
Vitor,
That's amazing!!! Your question is very timely! :-)
You know ... someone just challenged me with this question,
and I added the corresponding function to the boilerplate testsuite.
However, it is much more typeful than you propose.
I call it the typeful reflection benchmark.
Matthew Roberts wrote:
I am looking for a functional programming summer school in the next 12
months. I realise there was one August this year, does anyone know of
any others coming up?
July 4-8 2005 will be an international summer school on
generative and transformational techniques in
Graham Klyne wrote:
At 22:17 13/10/04 +0200, Ralf Laemmel wrote:
... We reconstruct OCaml's tutorial in Haskell ,,,
I think that's interesting as a theoretical exercise, but I don't
currently
see myself using that framework in practice, in the form presented.
As you
say Simply
John Goerzen wrote:
One of the best features of OO programming is that of inheritance.
...
Oleg, Keean and me have lying around a draft that adds to this
discussion. We reconstruct OCaml's tutorial in Haskell
The short paper version is online and under consideration for FOOL:
[EMAIL PROTECTED] wrote:
Some people say that ocaml's object system is kinda useless. The best
support I hear so far was:it does not hurt
Why do you (or do these people) think having all the OO idioms of OCaml
(see OCamls OO tutorial) is useless? Or do you mean too baroque? If not,
what's
...but rather define a generic function, this time is nothing but
a type case of type
forall x. Typeable x = x - Maybe (String, String)
Hope it helps.
Conclusion: don't use classes, rather use generic functions.
Ralf
Simon David Foster wrote:
On Thu, 2004-08-26 at 20:52, Ralf Laemmel wrote:
Hi
[ Functional programming
has contributed to the foundations of AOP
over the last few years.
For instance, see Walker's and Wand's contributions at ICFP 2003. ]
Special Issue on
Foundations of Aspect-Oriented Programming
Science of Computer Programming
Guest Editors: Pascal Fradet and Ralf Lämmel
Claus Reinke wrote:
For context: I wanted to show people in the haskell tools thread
- how easy it is these days to write a Haskell program transformation
for instrumenting source code with asserts, e.g. to get location info
for heads of empty lists :-)
Yes, it is easy!
- why these lovely
Hi Claus,
the tuple instances did not make it into GHC 6.2 because of CVS
branching policy.
GHC CVS HEAD compiles the example.
And yes, SPJ approved recently that Language.Haskell.Syntax should
derive Data and Typeable.
But, I can't access cvs.haskell.org.
Already for a while, it asks for my
Graham Klyne wrote:
If I have a polymorphic algebraic type (T a) with several type
constructors, only one of which actually references the type
parameter, is there any way to express type conversion for the
type-parameter-independent constructors without actually mentioning
all the
Mike Aizatsky wrote:
It's quite good. It reminds me the quirks Alexandrescu does in his Modern
C++ Design or here
http://osl.iu.edu/~tveldhui/papers/Template-Metaprograms/meta-art.html .
Since type system allows implementation of natural arithmetic, do you know,
is it Turing-complete?
Yes, C.
Hi Mike,
Let's redirect to Haskell cafe.
http://www.mail-archive.com/glasgow-haskell-users%40haskell.org/msg06288.html
http://www.mail-archive.com/glasgow-haskell-users%40haskell.org/msg06289.html
thanks for your time to look into the HList paper.
1. It looks like your HList is basically a
{-# OPTIONS -fglasgow-exts #-}
{-# OPTIONS -fallow-overlapping-instances #-}
{-
Hi Mike,
You might heterogeneous lists useful.
http://www.cwi.nl/~ralf/HList/
See the treatment of your example below.
Cheers,
Ralf
-}
import HList
import HTypeDriven
-- These are your two implementations.
The problem is that constrFields is not included with 6.2.1.
You would need to build GHC from CVS.
It will be in 6.4 for sure.
And yes, you are right, there is no other way to get the names
of all fields of a constructor.
Ralf
Stefan Reich wrote:
In recent versions of the GHC libraries,
MR K P SCHUPKE wrote:
Hi Oleg, I like the polymorphic list indexed by Ints... there
do seem to be a couple of differences between this and the list
indexed by natural numbers.
...
Agreed with these differences.
Another difference: it is initially a heterogeneous set
rather than list!
Hi Kean,
looks cool.
I get your point about static typing.
I guess that adding a fold operator would make your implementation more
complete.
Oleg has also encountered some of your operations (as you probably know):
http://www.haskell.org/pipermail/haskell/2003-August/012355.html
(Oleg also
I would like to see your code indeed ...
it seems the attachment was missing.
Anyway, I am not sure if it obvious or not,
but heterogenously typed lists can be nicely
modelled with Data.Typeable (!!!) I guess we
should add something like this to the module?
See
reflection that come handy
in such a context; we really plan to release [3] very soon :-)
Ralf
[1] The boilerplate site: http://www.cs.vu.nl/boilerplate
[2] The code for this example:
http://www.cs.vu.nl/boilerplate/testsuite/perm.hs
[3] Scrap more boilerplate by SPJ and Ralf Laemmel, forthcoming
and I have a draft which explains all this
but it is too clumsy to release yet :-)
All the best,
Ralf
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman
As Bernie and Derek already pointed out, in principle, the rich work on
intensional polymorphism and dynamic typing comes to mind. In
particular, dynamics are readily supported in Haskell.
Let me add the following.
Type-safe cast is now clearly localised in the module Data.Typeable.
(Due to a
(*
This field has meanwhile seen a number of contributions from the
functional programming community.
So it is fair to assume that the present announcement is of interest
for some subscribers of this list.
*)
FOAL: Foundations of Aspect-Oriented Languages
A one day workshop affiliated
(*
This field has meanwhile seen a number of contributions from the
functional programming community. So it is fair to assume that
the present announcement is of interest for some subscribers of
this list.
*)
FOAL: Foundations of Aspect-Oriented Languages
A one day workshop
(*
This field has meanwhile seen a number of contributions from the
functional programming community. So it is fair to assume that
the present announcement is of interest for subscribers of this list.
*)
FOAL: Foundations of Aspect-Oriented Languages
A one day workshop affiliated with
[EMAIL PROTECTED] wrote:
According to the communities report there are different
generic haskell projects (Jeuring/Hinze and PJ/Lämmel) out there.
But I don't understand their relation.
Can you use both at the same time?
Is one building on the other?
Are there adressing different issues?
A
Continuing Keith's self-reply ...
the Music type involves types
other than Music; so it is fair to say that
ultimately you would need generalised folds
extended to the case of *systems* of datatypes
(cf. Dealing with large bananas). Imagine
for example getPitches :: Music - [Pitch].
Even if a
Brandon Michael Moore wrote:
Great. But I can't build from the source: I'm getting errors about a
missing config.h.in in mk. I'm just trying autoconf, comfigure. I'll look
closer over the weekend.
Use the following (more specifically autoREconf).
The GHC build guide is behind.
cvs -d
Hi,
I am trying to compile some modules with old imports
such import MonadFix. These modules compile fine
with GHC 6.0 latest RPM, and also on CVS source tree
6.1 somewhere from july.
However, the file below does NOT get through with GHC HEAD.
I get ...
Compiling Foo ( Foo.hs,
Hi Mark,
The boilerplate style of generic programming [1] should be of help here.
For example, here you can see how to do a normal read and show:
http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/libraries/base/Data/Generics/Text.hs?only_with_tag=MAIN
We are also using this style to do decode
Regarding M. P. Jones proposal
to move command-line options to the module space,
I would like to reiterate something from an earlier email:
What if you want to express that overlapping instances are
fine for a certain class C but not for the rest? Recasted
to the module speak of MPJ, would that
your boilerplate: a practical design pattern for generic
programming
by Ralf Lämmel and Simon Peyton-Jones,
appeared in Proceedings of TLDI 2003, ACM Press
http://www.cs.vu.nl/boilerplate/#paper
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http
Stephanie Weirich's type-safe
cast fit for nominal type analysis.
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman
of types and I'd like to print all of them.
--
Dmitry Astapov //ADEpt
GPG KeyID/fprint: F5D7639D/CA36 E6C4 815D 434D 0498 2B08 7867 4860 F5D7 639D
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
--
Ralf
639D
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf
thing entirely safe and transparent.
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
Ashley Yakeley wrote:
At 2003-06-28 02:51, Ralf Laemmel wrote:
Suffering from persecution mania,
I prefer to know for sure that nobody never ever will
pattern match on those a's. So I prefer to write:
I don't understand. Did you mean pattern-match on MkType? I could stop
that by hiding
of these
datatypes is normally an ingenious process as opposed to
boilerplate programming in the sense of AST or document
traversal.)
Ralf L.
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
___
Haskell
, technically)?
Ralf
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
___
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe
of functional languages, and it is
also a typical application domain of functional programming.
Other keywords: Meta-programming, XML processing, refactoring.)
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
Special Issue on Program
@... ?
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
,
and can be directed to the authors:
* Ralf Laemmel([EMAIL PROTECTED])
* Joost Visser([EMAIL PROTECTED])
Have fun!
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
Not just a few haskell@... subscribers
do transformation for/with functional programming.
Thanks for passing on to interested authors.
--
Ralf Laemmel
VU CWI, Amsterdam, The Netherlands
http://www.cs.vu.nl/~ralf/
http://www.cwi.nl/~ralf/
Special Issue on Program Transformation
Science
mean that the firm
adherence to a well-designed format for a catalogue is the key.
Ralf
--
Dr.-Ing. Ralf Laemmel
CWI VU, Amsterdam, The Netherlands
http://www.cwi.nl/~ralf/
http://www.cs.vu.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http
Simon Peyton-Jones wrote:
Indeed the foralls are at the top, but I claim that wherever
you could use the composition function you were expecting,
you can also use the one GHC gives you. The two types
are isomorphic.
...
Let me know if you find a situation where this isn't true.
...
No I
Simon Peyton-Jones wrote:
In fact GHC does forall-lifting on type signatures to bring the
foralls to the front. But there's a bug in 5.02's forall-lifting...
...
Perhaps you can try the 5.03 snapshot release?
Certain things work there.
In fact, it is fascinating.
But now I did a new
should have suffered from that?
Ralf
--
Dr.-Ing. Ralf Laemmel
CWI VU, Amsterdam, The Netherlands
http://www.cwi.nl/~ralf/
http://www.cs.vu.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
experience makes
me think that it should be possible.
Anyway, can this problem be solved?
Any hint appreciated.
Ralf
--
Dr.-Ing. Ralf Laemmel
CWI VU, Amsterdam, The Netherlands
http://www.cwi.nl/~ralf/
http://www.cs.vu.nl/~ralf/
___
Haskell mailing list
/haskell
--
Dr.-Ing. Ralf Laemmel
CWI VU, Amsterdam, The Netherlands
http://www.cwi.nl/~ralf/
http://www.cs.vu.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
appreciate your feedback.
Regards,
Joost Visser and Ralf Laemmel
--
Dr.-Ing. Ralf Laemmel
CWI VU, Amsterdam, The Netherlands
http://www.cwi.nl/~ralf/
http://www.cs.vu.nl/~ralf/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman
79 matches
Mail list logo