Hi. I want to write a little haskell program executing about 4 programs
passing data via pipes. As my python script seems to be slower than a
bash script I want to try a ghc executable now.
It should invoke different parts of a text to speech chain. This way I
have one interface then.
Talar und
aren't suited for your task..
But to get the fastest/ whatsoever solution you should wait for
different replies as I haven't used all those yet to parse binary data..
Sincerly
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http
Hi TAESCH,
THat's what haskell is good for.
It prevents you from doing unsafe things by accident.
You must get the source and have a look at the definition of the Ev
type: (module HAppS.MACID.Types where:)
(Not sure wether this code is most recent or not (Version: 0.8.8))
=
are seen as a distraction the more we can automate this the better,
I've run into this trouble as well. And libraries will change... or
there will be libraries which are not updated etc..
I think another way would be having some automatism in fixing the most
obvious things.. Such as if package
to start implementing this somehow the next weeks.
So don't hesitate and start discussing
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Hi Matthias,
Bravo is inspired by the PHP template engine Smarty and the Haskell
Smarty is also about caching. Can you say whether your library support
kind of caching as well?
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http
a new package?
Is there something I've missed?
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Excerpts from Ivan Miljenovic's message of Tue Mar 16 01:53:13 +0100 2010:
On 16 March 2010 11:50, Marc Weber marco-owe...@gmx.de wrote:
I may be mistaken - but can't you just put the instance in a module
(within syb-with-class) and make syb-with-class not import it by
default
this in real world applications
though).
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
show you how it works if you're interested.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Well,
Is the real name uniq enough?
I mean if I google for Marc Weber many Haskell related posts show up.
So yes, this is me - but there are also many false hits.
So I for my part do no longer trust google results if I want to judge a
person. It gives some hints - you can verify by asking
to continue: Get hackage version. Copy the mover into the darcs
repository. Ask Nick (Jörg Rudnick) whether he wants credits. Make a
darcs commit giving it a message such as fix some extensible Exceptions
stuff. patch provided by Joerg Rudnick and continue
HTH
Marc Weber
If this is to be used with QuickCheck maybe it should be named that way.
eg quickcheck-agatath ?
This way its found faster.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
such a library?
Which functions should this library have?
I'm pretty sure that filepath already has most functions you need.
You may want to patch it so that it's using / on Windows when assembling
paths form lists of directory names.
Marc Weber
___
Haskell
way which would work for you only is making pathSeparator
return / only. Then you're done but your code will not be portable..
Including a local copy of filepath for exactly this reason could be an
option for you.
isSymbolicLink, linkCounts, etc.
Don't know about them..
Marc Weber
Hi Günther,
tehre is a fast darcs to git tool.
Maybe you can convert to mercurial easily then.
Ping me on irc (MarcWeber) or write back if you're interested.
I'll digg the link up then.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
react upon wishes of users faster than
everything else:
http://haskell.org/haskellwiki/Hackage_wiki_page_per_project_discussion
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
based on the Nix
distribution system which provides this feature natively. You can even
ask others computers to help building dependencies quite easily.
Downside: At the moment it will pull all depndencies (including kernel
headers and glibc..) if you install it on a common linux system.
Marc Weber
.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
and use that as key.
Let me know whether this is what you were looking for.
I tried writing something like this. Yet SQL gives all this stiff for
free. I still wonder which is the nicest way to express this data in
Haskell without coding everything yourself..
Yours
Marc Weber
I'm not even sure whether I should recommend reading my code :)
All I want to say: Its a little bit of work which is highly appreciated
by many Haskellers IMHO.
If you start such a project keep posting updates to the list. I'll read
them.
Marc Weber
bases. Of course they are not language aware but they
often get the job done.
I'd like to share all my scripts. Write me an email if you're
interested.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo
the other way round: Pick a task and ask which is
the best tool to get the job done.
But I think those items are obvious. Of course this is my point of view.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman
start writing something
like db4o in and for Haskell.
Its like a transactional database operating on objects.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
implementation of Test: Test ++ s
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
reimplement the protocol also depends on whether
speed is an issue.
If nobody picked up and started to work on Java interaction I think
you're right that b is the fastest option.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http
for the given problem.
Because recoding can sometimes take longer. And eg the Java community
has been much bigger in the past - thus there are more libraries
available. Eg Haskell has no htmlunit yet which interpretes JavaScript
and simulates a headless browser etc.
Marc Weber
Hi.
Did anyone implement something like pythons urllib yet?
I wont to retrieve some files via http (I could use wget -O - for that
) and send some form information (post/get)..
In other words: Something like expect but for downloading some documents
from a website.. ;)
Perhaps I should have
Everytime I try one of these tools I end up going back to Vim for editing
plus whatever debug tools I can scrape together.
Me is using vim, too..
And fortunately there is eclim on sourceforge
It does neither try to reimplement vim nor eclipse but tries to make
them work together.. But it's java
Hi.
I want to write a haskellquickfind app to get a list of files using
human readable hash values (eg the first character of
directory/filenames)
Eg hquickfind vtl
should print /var/tmp/local
My implementation should look like this:
Every folder/file is token and I want to run a parser. to
Have I missed a function or isn't parsec meant to be used this way?
Would you recommend writing your own small parser for this?
I'm parsing everything from the beginning now.. The other way I had to
to rewrite parts of parsec..
Marc
___
I'm not sure on which mail of this thread I should append MHO.
What happens if two programmers happen to choose the same package
name? (Prepend the location on the filesystem? ;-)
If something like a package name is introduced I would prefer not
separating package and module name with a .
the
leading @
so /ea is equal to /@ea
would it be useful if small letters would also match capital letters
but not the
other way round? The Eclipse Plugin GotoFile (written by Max Uermann)
does it this way
written by Marc Weber
Credits to any other
2) Recompiling binaries (necessary in order to link in foreign object
code into GHCi) is slow using GHC. Moreover I have to restart GHCi if I
want to reload a changed DLL (unless there is a way to unload a DLL in
GHCi). It also requires jumping around between several console windows
to
..
But there might be much better solutions.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
I've been using pesco_cmdline for a while now. But I did notice that
it doesn't fit my needs.. And it took me quite a while to get to know
why I was getting strange typeable errors when specifying the wrong
default value or reading the wrong type.. (these errors occur at
runtime thus they
line 39 works fine
line 56 doesn't. Why?
Isn't both a IO monad (because of the print statements)
After commenting out 56 it compiles fine
Any suggestion appreciated.. I'm struggling for some hours now..
module Modules.ObjectTree where
import Debug.Trace
import Data.FunctorM
import DBUtils
Hi
I've tried as an exercise to learn how to use the state monad to create
a tree this way:
module Main where
import Control.Monad.State
import Data.Tree
import Random
createTree :: Int - Int - (Tree Int, Int)
createTree 4 = runState $ State $ \s - (Node s [] , s+1) -- stop at level 4
Thanks to you all!
I think I've learned a lot.
Marc
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
OTOH I do not feel like I have a lot of time to dedicate to this, so
if someone else is working on this, could we team up (possibly for a
different (if shown better) approach because one I chose is still
I would join and try to help where /as much as I can
Marc Weber
1.)
I know I can use
Build-Depends: lib == version, lib2 version, lib3 =
version
and so on.
Do you think it would be useful to introducue some notation to indicate
a tested with ?
Reason, purpose: I think its sometimes the case that a
Is there somethinig corresponding to Num concering lists?
I mean there is + - /.. defined. + - are not type specific (Int, Double)
neither is : [1,2] notation to Elements.. But what about different
implementatins of lists? (linked lists? hash lists? array with index?
In other words: why not
the rand* function are examples for a typical state usage, arent' they?
Is there any reasoon why they are not defined
RandomGen g = State g a
rather than
RandomGen g = (a,a) - g - (a,g)
?
Marc
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
I've been busy for some days writing this humbled helper scripts for vim:
Goto vim - by Marc Weber
http://www.haskell.org/haskellwiki/Libraries_and_tools/Program_development#Vim
If you find it useful and drop me a line I'll be glad to read your
feedback.
Marc
I want to have a look at fruit which is using GCJNI, greencard, ...
That's why I want to learn how to use greencard with cabal.
If this is only a RTFM problem, can you point me to the docs?
When using the cabal builtin preprocessor I get the error that
--libdir has to be specified.
So I tried
suggests that it wants --libdir=../c_lib
instead of --libdir ../c_lib. Could this be the case? I'd like to
think it would parse them pretty much the same way but you can never be
sure...
Hi Dougal.
Thanks for your suggestion.
This might be the case. But is not here.
(I could have bet that my
Anyway, how to set the options using cabal ?
the preprocessor is there so there must be a working way without my
modifications I don't know about.
And Greencard.hs isn't just empty?
No, Greencard.*gc* looks like:
module Main where
import
The function takes a pointer to an integer, prints its value and returns the
increment.
void cl_inc(int *i){
printf(changing int from %d to %d, *i, (++i));
}
I've managed it by using this code:
{#fun pure cl_inc
{alloca `CInt' peek*}
Am I right that the way to do this now is create your own preprocessor
run on files havirg your extionsion?
What about naming the source files eg Module.hs.cpp.di.gc.chs ?
This would mean first run c2hs, then greencard thin DrIft then cpp and
put the results in
Module.hs.cpp.di.gc.chs 1)
On Thu, Dec 21, 2006 at 01:47:48PM -0800, Ranjan Bagchi wrote:
Is there a fast way to do this using ghc? I can extract fields by
using a ByteString, but I may not be using it fast enough: I've had
to write my own routines to extract ints, longs and doubles.
The other option is to write
*
If this and google didn't help you I would ask ;)
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Why do I have to specify (Monad m) here again?
class (Monad m) = GetMV m a where
...
instance GetMV m c where
...
No instance for (Monad m)
arising from the superclasses of an instance declaration
possible fix:
add (Monad m) to the instance declaration superclass context
Marc
On Sun, Feb 18, 2007 at 05:06:33PM +0300, Bulat Ziganshin wrote:
Hello Marc,
Sunday, February 18, 2007, 5:21:36 PM, you wrote:
Why do I have to specify (Monad m) here again?
class (Monad m) = GetMV m a where
instance GetMV m c where
because you can find another way to ensure
On Sun, Feb 18, 2007 at 06:59:32PM +0300, Bulat Ziganshin wrote:
Hello Marc,
Sunday, February 18, 2007, 7:32:54 PM, you wrote:
When using your example (Monad IO):
class (Monad m) = MonadIO m where
liftIO :: IO a - m a
it it basically the same, isn't it? This
David: Thanks again for your explanation
Because, in general, m isn't an instance of Monad.
Talking about my example:
class (Monad m) = GetMV m a where
...
instance GetMV m c where (2)
(2) There are only 2 cases:
ghc supposes m does instantiates Monad
= success
ghc
i mean that it makes error message more obvious - you don't need to
remember that this context is implied due to class declaration
The error might look like
Missing instance (Ord m) araising from use of ... imposed by
automatically infered class constraint from context line xy ? ;)
Something
Thanks for all the feedback. It did help me a lot.
Now I know that if there is something left to discuss the topic should
be:
Would it make sense to specify partial type declarations ?
I don't need an answer right now.
Marc
___
Haskell-Cafe mailing
Hi David.
I see that its useful to add complete type signatures without letting
the compiler add stuff magically. This is why I've tried to write the final
question down under a new topic wether it would be useful to be able to write
down partial type signatures where browsing coders know that
Having the module given below I can't see why using
printAndRerun l1
printAndRerun2 l2
but not
printAndRerun l1
printAndRerun l2
?
They only differ in their name.
Can you point me in the right direction?
{-#
how can i fix this?
Mmmh I really need some haskell type class traingings ;)
= test file ==
module Main where
import HList
import HOccurs
import Control.Monad.Reader
class Get a b where
get :: a - b
data D1 = D1 Int -- dummy type
type
curious about reading you comments on a) b) ;)
Happily
Marc Weber
= testfile - needs HList and GHC =
{-# OPTIONS -fglasgow-exts #-}
{-# OPTIONS -fallow-undecidable-instances #-}
{-# OPTIONS -fallow-incoherent-instances #-}
{-# OPTIONS -fallow-overlapping-instances
to look up how to do it.
If you still get stuck somewhere post again.
HTH
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
.
It depends on what you need and how much time you want to spent on this topic ;)
hope this helps
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
does not belong to class HList.
Of course there is another opportunity by writing (HCons a x) instead of
to force the first type beeing a HList...
Which is the topic to read from the ghc/ haskell manual ?
Marc Weber
___
Haskell-Cafe mailing list
Wow.
That said, it is quite possible in Haskell to achieve genuine
class-based dispatch, with backtracking if necessary:
http://pobox.com/~oleg/ftp/Haskell/poly2.txt
Thanks for digging this up.
I'll have to reread it tomorrow.
I wasn't able to find the definition of AllOf(But):
quote
However, it seems that your particular problem can be solved with
simpler means:
instance (HList a) = HListAppendArbitrary a HNil a where
hAppendArbitrary a _ = a
instance (HList a, HList b, HList c)
= HListAppendArbitrary a (HCons b d) c where
hAppendArbitrary a b = hAppend
Maybe it's better to ask ghc to include location information into the
iface files? Then you can get the right file depending on your imports..
Marc
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
Hi,
I've read on haskell org about
gcjni
Haskel/Java VM bridge
Lambada ( ghc 6.6.1)
Do you know wether any of them can be compiled with ghc-6.8 ?
If not does it need much effort to patch them?
Sincerly
Marc Weber
___
Haskell-Cafe mailing list
C-jump is a neat idea, mapping something fun (downhill
skiing) with programming. I look at this game and
wonder what it would look like in the wonderful world
of higher-order functions.
http://haskell.org/haskellwiki/Potential_projects
Greetings Marc Weber
as
well!
Thanks
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Hi Shaun,
I've read the whole thread till now.
If you only look at the testing side Cabal is a possible target to run your
tests.
(I think you've already met it?)
Adding documentation ficilities to ghci is nice,
however my experience is that documentation is not complete everywhere.
That's why
.
I'd like to talk to the author about my patches. I've send him two mails
but I haven't received any response yet.
Sincerly
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
On Thu, Apr 10, 2008 at 06:27:12PM +0200, Cetin Sert wrote:
Hi,
Is GHC required to be installed on the target OS I compile Haskell binaries
for in order for these binaries to run? I need a quick answer on that!
Because you need a quick answer I will give you an incomplete one:
No, of course
src/System/IO/Binary.hs:266:8:
Illegal signature in pattern: ForeignPtr CChar
Use -XPatternSignatures to permit it
Hackage confirms this build failure:
http://hackage.haskell.org/packages/archive/MissingH/1.0.1/logs/failure/ghc-6.8
Should not be hard to fix :) just add it to
the result type of
(*) fac1 fac2
wheeras using fundeps it knows the result type becaus there can only be
one instance. (Which is what you want in this case when multiplying
matrizes as well.
HTH
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
expressions and figuring out dependencies automatically..)
Is Franchise only meant to compile executables?
Or is there some support for libraries as well?
You need to feed in at least a list of exposed modules I guess
Marc Weber
___
Haskell-Cafe mailing list
proposes it) beeing
as easy as Data.Map would be nice.
Sincerly
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Also have a look at the HaXml page. A branch is listed there passing
more tests if I recall correctly. Don't know wether those changes have
been merged back yet. I haven't tried it.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http
It seems odd to me that ghci can infer a type that is illegal for the way it
was run. Thoughts?
Is it the same when compiling using ghc?
Don't know the answer anyway. But maybe this can shed some light.
Marc Weber
___
Haskell-Cafe mailing list
$ ghc -package wx -o helloworld HelloWorld.hs
$ /opt/local/bin/macosx-app -v helloworld
$ open helloworld.app
I've never used a Mac.. Why do you run macosx-app ?
Doesn't
$ ./helloworld
work?
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe
solutions (except coddfish,
haskelldb) ?
Marc Weber
draft
= types represeting tables and db
module RDMH.Types where
import Language.Haskell.TH
import Language.Haskell.TH.Syntax
data Uniqueness = Uniq | NotUniq deriving (Show, Eq)
data ModifyMode = InsertOnly
On Wed, May 21, 2008 at 05:05:21PM -0700, Jeremy Shaw wrote:
At Thu, 22 May 2008 01:04:24 +0200,
Marc Weber wrote:
Some way representing relational data which is typically stored in
databases such as Postgresql..
Rewriting something like Postgresql in haskell would take ages..
So
On Thu, May 22, 2008 at 08:16:54AM +0200, Salvatore Insalaco wrote:
2008/5/22 Marc Weber [EMAIL PROTECTED]:
I'd like to illustrate two different ideas using a small example:
(A)
data CD = CD { title :: String, tracks :: [ Track ] }
data Track = Track { track :: String, cd
).
So it has kind of API enabling me inserting rows without using SQL?
I still have to do some marshalling to / from C and synchronize db
layout and haskell data types.
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org
On Thu, May 22, 2008 at 10:56:03AM +0200, Ketil Malde wrote:
Salvatore Insalaco [EMAIL PROTECTED] writes:
This doesn't look like a relational structure at all in Haskell.
I believe you are abusing terminology here. 'Relation' refers to a
Yes. Sorry. I thought the relational in relational
of relations writing this
let
in
will become tedious and error prone.. That's why I'd like to use
template haskell to automatically derive it.
Thanks for listening
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http
On Thu, May 22, 2008 at 12:48:42PM +0200, Salvatore Insalaco wrote:
2008/5/22 Marc Weber [EMAIL PROTECTED]:
So in haskell it would look like this:
let updatedCd = 0x22 CD (0x6 My song) (0x20 ( 0x23 : ...)
updatedTrack = 0x23 Track ( 0x21 updated track title ) 0x22
On Thu, May 22, 2008 at 03:34:36PM +0200, Marc Weber wrote:
On Thu, May 22, 2008 at 09:11:28AM -0400, Isaac Dupree wrote:
to whoever in this thread hasn't realized it:
Map String (Map Int Foo) == Map (String,Int) Foo
(at least to an approximation)
There is another difference if you want
benefits:
You can use your existing SQL- Knowledge and don't have to dive into
deep type hackery yet gettitng as much type safety as possible
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell
on the haskell mailinglist recently;
SmallCheck is similar to QuickCheck (Claessen and Hughes 2000-) but
instead of testing for a sample of randomly generated values, SmallCheck
tests properties for all the finitely many values up to some depth,
progressively increasing the depth used
Marc Weber
On Thu, May 29, 2008 at 03:51:56PM -0700, Thomas Hartman wrote:
echoextra-lib-dirs: ${zlib}/lib zlib.cabal
echoinclude-dirs: ${zlib}/include zlib.cabal'';
Try patching the cabal file using something like that.
Marc
___
Haskell-Cafe
they fit your needs ?
mit freundlichem Gruss
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
by a auto generated function taking an int etc
Benefit:
Wrong arg types or wrong printf arg count will result in compile time
errors.
Enjoy
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell
? I don't even compare the key of the last list
item, because it must match. So you safe some additional cpu cycles..
The same can be implemented for Data.Map etc..
Marc Weber
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org
to automatically splice those functions?
{-# auto-splice: runStmt, printf #-}
So that you can just use
printf ... a b c
and
runStmt INSERT INTO ( ) VALUES ( ?, ?, ? ) 2 3 4
without $() ?
Would this be convinient?
Marc Weber
___
Haskell-Cafe
Is Haskell still used (in industry as well ?) to write (V)HDL code to
program FPGAs and create circuits on chips?
The Chalmers Lava homepage tells abouta Xilinx version which should be
merged in soon. But on the xilinx homepage there was no reference to
neither Lava nor haskell..
I'm thinking
in this area
For a simple enough design, it can be useful to write specs in Haskell and
then translate them to HDL by hand. I believe someone on this list had a
particularly successful experience doing that :).
Thanks for this note.
Marc Weber
___
Haskell
Don't be discouraged; I think it would be useful. IMO, Haskellers tend to be
pretty insensitive when it comes to usability.
For example, before the GHC devs were asked for that feature, I wonder
whether anyone ever thought: Hey, when ghc -Wall complains about having no
type signature -
and major changes.
Thanks for listening and for any feedback in advance.
Marc Weber
NOTES:
[1]: Of course nix runs on cygwin as well. However nothing has been
tested so quite some effort has to be spent making this work on Windows
as well.
[2]: If you have a dependency chain
glibc - lib
1 - 100 of 296 matches
Mail list logo