registration now
http://www.ericsson.se/cslab/ifl2001/register.html
Please register before August 1st.
See you in Stockholm
Thomas
Thomas Arts
Ericsson
Computer Science Laboratory
Box 1505
125 25 Stockholm
Sweden
___
Haskell mailing list
[EMAIL PROTECTED
[EMAIL PROTECTED]
Best regards
Thomas
---
Thomas Arts
Ericsson
Computer Science Laboratory
Box 1505
125 25 Stockholm
Sweden
[EMAIL PROTECTED]
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
I just learned that ZuriHac will overlap (on Fr-Sa) with the C++ standards
committee meeting in the very same venue:
http://open-std.org/JTC1/SC22/WG21/docs/papers/2017/n4673.pdf
The PDF by the way also includes useful hotel and travel information.
___
via anonymous FTP on
ftp.cs.chalmers.se
in directory
/pub/haskell/chalmers
Bug reports and feedback to
[EMAIL PROTECTED]
or [EMAIL PROTECTED]
Thomas Hallgren
Magnus Carlsson
via anonymous FTP on
ftp.cs.chalmers.se
in directory
/pub/haskell/chalmers
Bug reports and feedback to
[EMAIL PROTECTED]
or [EMAIL PROTECTED]
Thomas Hallgren
Magnus Carlsson
more difficult to change it for a later version of
Haskell...
Regards,
Thomas Hallgren
/chalmers
Send bug reports and feedback to
[EMAIL PROTECTED]
or [EMAIL PROTECTED]
Thomas Hallgren
Magnus Carlsson
? ?
Rob Turner <[EMAIL PROTECTED]> writes:
| How do you get a subtype in Haskell (or any other functional language
| come to that)? I'm thinking along the lines of (pseudo-notation):
|
| type weekday = {Mon, Tue, Wed, Thur, Fri}
| type weekend = {Sat, Sun}
| type day = weekend + weekday
of Lennart Augustsson, John
Hughes, Thomas Johnsson, Mikael Rittri, Mary Sheeran, and about a
dozen others. Current research includes:
* Efficient implementation of lazy functional languages.
* Parallel graph reduction.
* Programming environments for functional languages, including
of Lennart Augustsson, John
Hughes, Thomas Johnsson, Mikael Rittri, Mary Sheeran, and about a
dozen others. Current research includes:
* Efficient implementation of lazy functional languages.
* Parallel graph reduction.
* Programming environments for functional languages
s the size of the array.
[ If anyone wants to know how this is done, I could expand on this. ]
It seems to me that it is a bit more general to apply f to the entire
list accumulated at each index, rather than as an operator for foldr.
-- Thomas
>
> Thomas Johnsson says:
>
> >If I recall correctly, the := to be used in array comprehensions was a
> >consession to the FORTRAN/Id/Sisal community, so that array comprehensions
> >would look more like they were used to.
>
> Both Arvind and
. instead of -> ). Note that the pattern [ x ] in the function
forces the evaluation of the entire list and its indices, because,
intuitively, it has to be checked that there is no more than one element for
each index.
> and the intermediate list never gets built.
Yes, there is that.
-- Thomas
Sorry, the definition of filterArray should read:
filterArray f z b list =
array b [ i := foldr f z [ x | j:=x <- list, i==j ]
| i <- indices b
]
-- Thomas
er possibility would be to have only one, the lazy one,
and to use strictness annotations when the extra efficiency is desired;
but there seems to be a consensus against strictness annotations
(re the "newtype" discussion thread.)
But maybe the distaste is only for annotated *constructors* ?
-- Thomas
I propose that we do the following cleanup in the lexical
syntax for operator symbols:
Allow - and ~ inside operator symbols (and not just as first
characters in them).
Currently, e.g. -+ and ~= are allowed, but +- and =~ are not.
This seems a bit arbitrary to me.
-- Thomas
to write
[ | (a,b) <- blablabigexpression, a==b ]
-- Thomas
wanted was a
definitional list comprension (Kevin, was that what you called it?
You wrote a note about this ages ago):
So that a qualifier can also be a let or where definition,
perhaps like:
[ .. | . (lsy, l, s:r)|isNonterm s = all_kernel_item_tab ! kno ]
The problem with this syntax is that = looks too much like ==.
-- Thomas
sometimes want to exit(1) in some
> cases.
Real programmers can do this already. They simply use the standard library
function System.exitWith [1]. I don't like the idea of changing the type of
main to IO Int for several reasons...
Thomas Hallgren
[1] http://haskell.systemsz.cs.yale.edu/onlinelibrary/system.html
r as possible to Yacc/Bison/ML-Yacc, etc.
-- Thomas Johnsson
guage design issues (existential
types, dependent types) written down about one year ago can be found in
http://www.cs.chalmers.se/~hallgren/Thesis/haskell-comments.html
Thomas Hallgren
hat you can
allow...
Perhaps it would be a good idea to consider the work done on "Strong
Functional Programming"as part of the Haskell 2 design process. Here is one
link:
http://www.cs.ukc.ac.uk/people/staff/ajt/ESFP/Published/
--
Thomas Hallgren
ion of a version of Haskell,
called OHaskell, which incoropates this type system.
--
Mvh Thomas H
get a code explosion, possibly an infinite one.)
Have I missed something fundamental that prevents this solution from working?
--
Thomas Hallgren
syntactical errors can be reported in a more meaningful manner?
Cheers
Mike Thomas.
/haskell/chalmers/untested/
[3] http://www.cs.chalmers.se/Cs/Research/Functional/Fudgets/Manual/
--
Thomas Hallgren
PS Since my home computer runs FreeBSD, I know for sure that Fudgets
compiles and runs just fine under FreeBSD :-)
The Glasgow Haskell Compiler -- version 4.06
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 4.06. The source distribution is freely
available via the World-Wide Web and through anon.
> I´m pretty new in haskell and I'm wondering about the following list
> HUGS98 gave me:
>
> I typed :
> Prelude> [1, 1.1 .. 10]
> and expected an ascending list from 1 to 10 in exact steps of 0.1
...which is what you got...
> This is what Hugs gave me:
> [1.0 , 1.1, (...) 7.7, 7.7, 7.8999
On Wed, 15 Mar 2000, Peter Hancock wrote:
> says that the project has been suspended.) I suppose the problem here
> is that the ghc people (laudably, sensibly, etc, ..) want a doc package
> that makes rtf as well as the usual unix doc formats.
It was more that we wanted a package that was easy
On Tue, 14 Mar 2000, Peter Hancock wrote:
> Somewhat related to this,
> ghc-4.06-1.src.rpm
> has a problem. It builds OK (taking several hours on my machine) till
> the very end, then dies trying to invoke some program called db2dvi.
> I can't find a redhat package that contains this.
See the
).
Hi.
Today, I put sources for Fudgets [1] version h13t on our ftp site [2]. It
compiles with HBC and GHC 4.06.
Fudgets is still maintained, although we haven't taken the time to make any
thoroughly tested releases. But it still works well enough to be used in
undergraduate teaching and in
d. I compiled the code with ghc-4.06 and the option
"-optCrts-M128m" under Linux. Does anyone know what to do to increase
the Heap-size?
cheers
Thomas
Hi all,
Why is it that type synonyms can't be made class instances?
I suspect there's a good reason, but I can't figure it out.
The reason I ask is that I'm finding that definitions for monads are
obfuscated by the need for constructors and field accessors, whereas if
type synonyms could be inst
Thanks Marcin,
Marcin 'Qrczak' Kowalczyk wrote:
> Thomas Harke <[EMAIL PROTECTED]> pisze:
>
> > Why is it that type synonyms can't be made class instances?
>
> It does not add any functionality (see below), and could be confusing
> because it would
ional programs for the Java Virtual
Machine", Journal of Functional Programming, Vol 9, Issue 6, Nov 1999.
The translation, which is done via the -machine, is described in
detail. The article also contains performance figures with comparisons
to related implementations.
--
Thomas Hallgren
A binary distribution of Happy is now available for Windows. It's a
distribution of the latest CVS version, which is quite stable, and
contains a few enhancements over 1.6, hence the bumped-up version number.
Point your browsers at: http://www.haskell.org/happy/
--
http://sc3d.org/rrt/
L'art de
Erik Meijer found a corrupt script in the archive uploaded earlier, which
stopped Happy running at all. It's now fixed.
--
http://sc3d.org/rrt/ | Maximiste, n. pessimiste
The Glasgow Haskell Compiler -- version 4.08
==
We are pleased to announce a new release of the Glasgow Haskell
Compiler (GHC), version 4.08. The source distribution is freely
available via the World-Wide Web and through anon.
[Thanks to Don Syme for noticing within 10 seconds of my posting the
previous announcement that the URLs had the wrong version number]
The Glasgow Haskell Compiler -- version 4.08
==
We are pleased to announce a new release of
The profiling imports were in the wrong place in the InstallShield for
4.08 (now fixed).
If you've been bitten and don't fancy re-downloading, then just move the
contents of \ghc\ghc-4.08\imports into
\ghc\ghc-4.08\lib\imports, and all should be fine.
--
http://sc3d.org/rrt/ | wit, n. educated
> As another example, compare the propaganda version of quicksort in
> Haskell with a more realistic tail recursive one.
I remember thinking "wow!" when I first saw the Gentle Introduction
version of quicksort, then "hang on...that's not quicksort!". Whatever
happened to in-place update (one of t
The Glasgow Haskell Compiler -- version 4.08.1
We are pleased to announce an update of the Glasgow Haskell
Compiler (GHC), version 4.08.1. The source distribution is freely
available via the World-Wide Web and through anon.
The old installer was missing some DLLs; to correct this and improve
Happy's stability (while also reducing the size of the installer) I've
rebuilt Happy statically and uploaded a new installer.
--
http://sc3d.org/rrt/
L'art des vers est de transformer en beautés les faiblesses (Aragon)
> ANNOUNCING Happy 1.9 - The LALR(1) Parser Generator for Haskell
> -
A Windows InstallShield package is available at
http://www.haskell.org/happy/dist/1.9/happy-1-9.exe
--
http://sc3d.org/rrt/ | egrep, n. a bird that debugs
I just noticed that the Happy 1.9 InstallShield contained a dynamically
linked executable for Happy. This was a Bad Idea, so I've replaced it with a
statically linked executable. This should work for more people.
--
http://sc3d.org/rrt/ | maxim, n. wisdom for fools
___
As of now, several things have been corrected:
1. Sparc HC files are available.
2. The Windows link actually points to the 4.08.2 release, not the 4.08.1
release.
3. RedHat 6 i386 RPMs are available.
--
http://sc3d.org/rrt/ | computation, n. automated pedantry
_
do this. In Haskell it is not always
> possible to eliminate all polymorphism (due to polymorphic recursion).
I'd like to see an example of this!
--Thomas
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
I just tried this example with putStrLn and putStr, and both worked
fine. I am using the latest 4.08.2 GHC under Windows 2000.
-Original Message-
From: Andre W B Furtado [mailto:[EMAIL PROTECTED]]
Sent: Monday, February 19, 2001 6:20 PM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]; [EMAI
am I supposed to do this
mount?)
Has anyone got a solution?
Furthermore, is anyone using Direct X especially Direct Play and Draw with
GHC?
Cheers
Mike Thomas.
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
> The Win32 installation instructions say that one should execute "mount -f C:
> /", but having done that in response to this error it does not fix the
> problem and it stops bash from starting up correctly (Cygwin is installed in
> c:\cygwin and GHC in c:\ghc\ghc-4.08.2). (Why am I supposed to d
> From painful experience installing GHC under Win2K I can advise you should
> install Cygwin at root level now, contrary to advice in Cygwin. Also make
> sure your disks are mounted in binary mode or things go awry. The sed part
> of the build process will fail first time around but the build wi
Sigbjorn says:
Link with -mwindows (if going via gcc to get at
the linker.) i.e., if using the std hello.lhs app
ghc -o hello hello.lhs -static -package win32 -optl-mwindows
that'll get you a non-console app with mingw. Think
it'll do the trick with cygwin too.
__
h mingw. Think
> it'll do the trick with cygwin too.
The exe is 4270K, but I can live with that.
Cheers
Mike Thomas
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
> The exe is 4270K, but I can live with that.
Even stripped? (Unfortunately GHC does give you big EXEs, and fundamentally
will until we get dynamic linking working again; however, I think I might be
able to improve things drastically even before then by re-enabling object
splitting for the librar
ght be
> able to improve things drastically even before then by re-enabling object
> splitting for the libraries under Windows.)
Thanks. Even without this GHC now stands up very well from my perspective.
I no longer have an excuse for procras
xt+0xdec):fake: undefined reference to
`access_prim_malloc_gc_failed
'
StdDIS.o(.text+0xea0):fake: undefined reference to
`access_prim_malloc_gc_failst
ring'
StdDIS.o(.text+0x1206):fake: undefined reference to `prim_writeCharAddr'
collect2: ld returned 1 exit status
---
eenCard 2 code for FFI */
double prim_my_sin(double arg1)
{ double res1;
do { res1=sin(arg1);
return((double)(res1));} while(0);
}
----
Cheers
Mike Thomas
___
Haskell mailing list
Hi all..
What is the recommended way of making the Mingw32 build of GHC and all
associated tools, eg HDirect, Green-card etc from the CVS?
Cheers
Mike Thomas
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
libraries (libHScom.a, libhdirect.a) into ghc's "lib"
directory.
- Do "make clean", deleting "src/ihc.exe" by hand.
- Set SUPPORT_TYPELIBS=YES in "src/Makefile"
- "make boot", "make", then "make lib" as before
An InstallShield distribution of Happy 1.10 for Windows is now available
from the Happy page (www.haskell.org/happy/).
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
of rules matters, etc. On the other hand, one has the whole abstraction
machinery
of Haskell or whatever at hand for writing the grammar rules.
The analogy that comes to mind is statically typed languages vs runtime typed ones.
--Thomas
PS would be cool to try to ma
static.
etc.
Unless you're desperate, I suggest waiting for the official release.
Cheers
Mike Thomas.
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
application domain. Does it mean that my _real_ programs
> would expose the same?
Yeah, it's pretty big, but I guess that not all programs use as much memory
as a compiler.
Good luck.
Mike Thomas.
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
ed names are part of the lexical syntax.
The same problem is present in Appendix B.
Suggestions: include qvarid, qconid in the production for lexeme. Move
the explanation of the lexical properties of qualified names from
section 5.5.1 to section 2.4.
Thomas Hallgren
___
erate space efficient
code to begin with, but also provides heap profiling to help you find
out what kind of data is occupying all the space (constructor profile),
which functions produced the data (producer profile) which functions
have references to th
Wolfgang Lux wrote:
>Thomas Hallgren wrote
>
>>There seems to be a similar problem with qualified identifiers. The
>>production for lexeme includes varid, conid, etc, rather than qvarid,
>>qconid, etc.
>>
>Sorry we must have a different version of the report,
essions would all reduce to String, and they
would all compute to the expected results (i.e., the result you would
get by manually disambiguating the types, e.g., show ([]::[Int])).
The same trick applies to the Eq class, so that, e.g., [] == [] would be
unambiguous and compute to True.
So, obviously, the ne
ing with ideas from papers like [3]
and [4].
>My implemention mood has
>suddenly past.
>
Does this mail do anything for your implementation mood?
Thomas Hallgren
PS By the way, perhaps theorems for free (e.g., [5]) also have something
to contribute to the solution of this problem?
[1] htt
A Happy 1.11 InstallShield is now available (including the post hoc
bug fix!).
--
http://sc3d.org/rrt/ | competent, a. underpromoted
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
really easy to
reuse for this purpose!
Regards,
Thomas Hallgren
Nicholas Nethercote wrote:
>On Mon, 18 Mar 2002, Kevin Glynn wrote:
>
>> > Are there any programs to strip comments and blank lines from a Haskell
>> > source file, that work on normal and literate programs?
ing function.
Below is an extension using an integer array. Note that I've had to double
the array size.
$ g77 -c atest.f
$ ghc -fglasgow-exts main.hs -o main.exe
$ ./main
[1,3,0,0,2,4,0,0]
If you go any further, please let me know as I want to interface to LAPACK.
Ch
as code written in Gofer which I just yesterday finished
converting to Haskell 98. (That is, I compiled it but I have not yet tested
it.) It is attached as a starting point.
Cheers
Mike Thomas.
- Original Message -
From: "Jan Kybic" <[EMAIL PROTECTED]>
To: <[EMAIL P
Hi,
The Haskell report seems pretty clear about the meaning of numeric
literals and negation in expressions: -2 should be interpreted as negate
(fromInteger 2). That is, negated literals are not treated specially,
the general rule -(e) ==> negate (e) applies. (See section 3.2 and 3.4
of the H
the fixpoint iteration (or that the fixpoint
iteration has to return more than the resulting inscope/export
relations), and thus complicates the specification.
So, while the text in the report might need clarification, we think the
semantic change implied in the above proposal is undesirable. I
skell, but my
understanding is that it isn't in the standard library.
Tom
--
Dr Thomas Conway Multimedia Database Systems, RMIT University
<[EMAIL PROTECTED]> 499 User error! Replace user, and press any key.
___
Haskell mailing lis
some small bugs and performance problems since the h13w
version.
--
Thomas H
PS Although the package system is useful, I think the solution with a
global configuration file is an inherently bad idea...
___
Haskell mailing list
[EMAIL PROTECTED]
http://
on of GHCXMAKE. (Or install humake.)
If the source distribution doens't work then I gues I just have to use the
binaries... :-(
Yes, why not? The point of binary distributions is to make things easier
for users... :-)
--
Thomas H
___
Haskell mailing l
ope: `A.--'
HBC: "B.hs", line 5, syntax error on input:=
(treats -- as the start of a comment)
Hugs: ERROR "B.hs":4 - Undefined qualified variable "A.--"
NHC98: Identifier A.-- used at 4:6 is not defined.
PFE: B.hs:5,1, before : syntax error
(A.-- is lexed as A.-
reused in the
Haskell refactoring project at the University of Kent.
--
Thomas Hallgren
The Programatica Project
http://www.cse.ogi.edu/PacSoft/projects/programatica/
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo
())
to store values in arrays of records of various types. Is there a
convenient way to do things like this without _casm_?
--
Thomas H
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
while expecting
interactive user input.
* A person experienced in porting darcs to MS W recommended me to look
for a pure Cygwin port of GHC.
In a ``pure'' Cygwin port all system calls should go through the
Cygwin libraries, of course.
Regards
Thomas
_
Thomas Hafner wrote:
Are somewhere GHC binaries for Cygwin available? I tried to cross
compile from Linux, but didn't succeed.
Maybe one want to answer me: ``Why is a cygwin port needed? There's
already a great MS W port!'', but: ...
In a ``pure'' Cygwin port all
p://www.haskell.org/ghc/contributors.html
How about publishing there, that somebody is wanted as a
porter/packager for Cygwin? That could be a first, initial step.
Regards
Thomas
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell
University of British Columbia, Vancouver, Canada
Andrew Wendelborn, University of Adelaide, Australia
ORGANIZING COMMITTEE:
Thomas Noll, RWTH Aachen University, Germany
Joost Visser, University of Minho, Braga, Portugal
Eric van Wyk, University of Minnesota, Minneapolis, USA
IMPORTANT DATES
Hi,
I'm glad that there's interest for a tool like hat-anim. I should warn you however that the current version is far from perfect - it has some problems with displaying infinite lists and with some lambda expressions and worst of all has a pretty nasty memory leek problem (there's what I get for
This method unfortunately depends on having a seed first though. One
must use a different value every time the program is started, commonly
time or the first few bytes from /dev/random. Any one of these is
going to require a monadic function to generate (i.e. it must come from
the environment
On 11 Nov 2004, at 22:02, karczma wrote:
Thomas Davie writes:
This method unfortunately depends on having a seed first though.
Which "this method"? Please, quote the text you are referring to
*before*
your answer.
One must use a different value every time the program is started,
common
trecht University, The Netherlands
Kris de Volder, University of British Columbia, Vancouver, Canada
Andrew Wendelborn, University of Adelaide, Australia
ORGANIZING COMMITTEE:
Thomas Noll, RWTH Aachen University, Germany
Joost Visser, University of Minho, Braga, Portugal
Eric van Wyk, University of
Hi Haskell Hackers!
There are only 4 days left until the fourth Hackathon (http://
www.haskell.org/haskellwiki/Hac4) at Chalmers University in
Gothenburg, Sweden.
If you haven't registered, yet, please do so now!
Registration deadline: Tuesday, April 8, 2008
To register, go to http://
Hi,
I've written the programme below.
The lircLoop should never terminate. Unfortunately it does. Worse, no error
messages are generated.
Not even the final line "Closing down" is printed.
How is this possible?
Thanks for your help.
import Hmpf.Tree as T
import Control.Concurrent hiding (forkI
check.
- It's rather slow (then again you don't run it very often)
I'm using it for the GHC source code, and it works rather well now.
If anyone is interested we could certainly release a version that
works with 6.10.1 (or if someone wants to backport it, go ahead).
Cheers,
Thomas
Hi Neil,
This is a great addition! There's several packages up there that I
want to search. A couple of small bug reports though:
1. Searching using a package name that isn't all lower case results in
nothing (e.g. (a -> b) -> f a -> f b +InfixApplicative gives no
results, while (a ->
I noticed recently that HOC has moved over to google code, and seems a
little more active than it was before. Is there a mailing list where
I can talk to other users and get myself kick started, or is it a
case of just using the standard Haskell ones?
Bob
_
On 4 Feb 2009, at 13:33, Benjamin L.Russell wrote:
On Sat, 31 Jan 2009 21:34:34 +0100, Thomas Davie
wrote:
I noticed recently that HOC has moved over to google code, and
seems a
little more active than it was before. Is there a mailing list where
I can talk to other users and get myself
On 1 Apr 2009, at 16:31, Daniel Lincke wrote:
Hi Haskellers,
I am looking for a parser which can parse Haskell code and build an
syntax tree out of it. The syntax tree should be storable in some
reasonable file format in order to use it as an input for applications
like programm transformation
On 3 Apr 2009, at 09:25, Benjamin L.Russell wrote:
On Fri, 3 Apr 2009 09:09:26 +0200, Jean-Philippe Bernardy
wrote:
On Fri, Apr 3, 2009 at 7:12 AM, Marc A. Ziegert wrote:
how about an octopus?
I could not resist the opportunity to combine two great ideas and
give
you the haskell octop
On 26 Apr 2009, at 18:24, Michael Dever wrote:
Hi,
The first release of Haskell File Manager has been uploaded to
http://code.haskell.org/haskellfm
This is a program for viewing/managing the files on your computer.
It has all the common functionality you would expect from your
current fi
Hiya all,
I'm trying to build a library that can be called from C code. The
ghc manual implies that this can be done, but does not specify the
compiler options that I need to throw at it, and into which files I
should put initialisation/end routines. Does anyone know the magic I
need t
Sorry to be That Guy, but:
Your use of rounded borders for the boxes is skewing the correct
perception of the data. The rounded borders remove more area from the
smaller bars than the from the larger bars, so smaller bars will seem
even smaller in comparison. In general, never ever try to make
d
with us at the Functional
Programming Laboratory, on a subject in relation to a new project:
Implementation of a dependently-typed programming language using a verified
core-language.
The supervisors will be: Dr Thomas Anberree in China, Dr Thorsten Altenkirch in
Nottingham.
Applicants should
1 - 100 of 165 matches
Mail list logo