Re: [Haskell-cafe] Libraries to compare trees?

2011-10-28 Thread Rustom Mody
On Fri, Oct 28, 2011 at 8:54 PM, Ozgur Akgun  wrote:

> Hi.
>
>
> On 27 October 2011 13:49, dokondr  wrote:
>
>> Please advise on Haskell libraries to compare trees in textual
>> representation.
>> I need to compare both structure and node contents of two trees, find
>> similar sub-trees, and need some metric to measure distance between two
>> trees.
>>
>
> This might help: http://hackage.haskell.org/package/gdiff-1.0
>
> Best,
> Ozgur
>
>
This is interesting.  Just putting some thoughts here. Please comment.

I am a user of emacs org-mode http://orgmode.org/.
Basically org imposes a tree structure onto plain text and when that is
appropriate its quite a nifty tool.  Recently there was some discussion on
the org list that diffs of org files were less than useful because while
org understands hierarchical structure, diff doesn't.

I wonder what would be involved in setting up a bi-directional pipe between
emacs and haskell so that orgmode could use gdiff's findings?
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANN: Haskell OpenGL package updates

2011-10-28 Thread Jason Dagit
On Fri, Oct 28, 2011 at 2:07 PM, Edward Kmett  wrote:
> Jason,
> Thank you for taking ownership of HOpenGL!

Thanks!

> I would like to make a formal request for there to be some way to get access
> to either
> Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal
> or that
> Graphics.Rendering.OpenGL.Raw.Core31.Types
> re-export the newtype wrappers it places around CDouble and CFloat.
> As things stand the only way to work with them is to pointlessly round-trip
> through rational or pray that GHC is smart enough to automatically convert
> once it sees through the newtype, which it isn't, potentially costing me
> orders of magnitude of performance in tight loops in exchange for
> implementation freedom the current OpenGL bindings do not use on any
> platform.

Yes, it's a real problem.  I think there are a couple directions we
could move in (and some may not even be mutually exclusive).

Andy Gill created this workaround:
{-# RULES "realToFrac/a->GLfloat" realToFrac = \x -> GLfloat (realToFrac x)
#-}
{-# RULES "realToFrac/GLfloat->a" realToFrac = \(GLfloat x) -> realToFrac x
#-}

That one helps a lot for most people.

Someone made a libraries proposal that also helps the conversion
situation but I don't have the details handy at the moment.

If you read here, I'd like to get some MArray support in and I think
it's possible, although I haven't the idea I proposed yet:
http://www.haskell.org/pipermail/haskell-cafe/2011-March/090511.html

Another thing we could do is find a different balance between newtypes
and the C types.

I'm totally onboard with exposing all of OpenGLRaw.  I think we just
need to sufficiently document the "internal" bits so that only people
who absolutely need them will use them.  That's how I see ByteString
and it seems to be working there.

Thanks for your suggestion (and your pull request on github, yay for
collaborative tools!).

Jason

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


Re: [Haskell-cafe] What is the status of GPU-accelerated Haskell?

2011-10-28 Thread Rafael Gustavo da Cunha Pereira Pinto
Wow! That is cool!  I'll take a look...

Thanks folks!



On Fri, Oct 28, 2011 at 11:39, Ryan Newton  wrote:

> There are CUDA bindings:
>
>http://hackage.haskell.org/package/cuda
>
> And that is what the higher-level GPU-programming package, Accelerate, is
> based on:
>
>http://hackage.haskell.org/package/accelerate
>
>
>
> On Thu, Oct 27, 2011 at 4:04 PM, serialhex  wrote:
>
>> Hi, there is an OpenCL / Haskell thread floating around the ML, mostly
>> it's a dew ppl talking about merging the 5 (or so) bindings to the OpenCL
>> api and getting spiffy multi-threaded haskell-awesomeness out of that.  i
>> think they are discussing the benefits/drawbacks of a pure-ish api
>> conversion or a more haskell-ish conversion, or some combination thereof.
>>
>> either way, it exsists, and it's happening (though i'm not so sure about
>> CUDA bindings...  but OpenCL will work on Nvidia & ATI cards the same)
>>
>> hex
>>
>>
>>
>> On Thu, Oct 27, 2011 at 3:45 PM, Rafael Gustavo da Cunha Pereira Pinto <
>> rafaelgcpp.li...@gmail.com> wrote:
>>
>>>
>>>
>>> Hi folks,
>>>
>>> I just bought a NVidia Fermi-based card and remembered reading a few
>>> months (years?) ago about some effort to accelerate array processing in
>>> Haskell using GPUs.
>>>
>>> How is this going on? Any progresses? Do we have GPU based DPH already?
>>> (the last one is a joke...)
>>>
>>> I keep thinking on the advantages of such GPU data processing on the
>>> signal processing field.
>>>
>>> Best regards,
>>>
>>> Rafael Gustavo da Cunha Pereira Pinto
>>>
>>>
>>> ___
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe@haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>>
>>
>>
>> --
>> *  my blog is cooler than yours: http://serialhex.github.com
>> *  The wise man said: "Never argue with an idiot. They bring you down to
>> their level and beat you with experience."
>> *  As a programmer, it is your job to put yourself out of business. What
>> you do today can be automated tomorrow. ~Doug McIlroy
>> ---
>> CFO: “What happens if we train people and they leave?”
>> CTO: “What if we don’t and they stay?”
>>
>> ___
>> Haskell-Cafe mailing list
>> Haskell-Cafe@haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>


-- 
Rafael Gustavo da Cunha Pereira Pinto
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] ANN: Haskell OpenGL package updates

2011-10-28 Thread Edward Kmett
Jason,

Thank you for taking ownership of HOpenGL!

I would like to make a formal request for there to be *some* way to get
access to either

Graphics.Rendering.OpenGL.Raw.Core31.TypesInternal

or that

Graphics.Rendering.OpenGL.Raw.Core31.Types

re-export the newtype wrappers it places around CDouble and CFloat.

As things stand the only way to work with them is to pointlessly round-trip
through rational or pray that GHC is smart enough to automatically convert
once it sees through the newtype, which it isn't, potentially costing me
orders of magnitude of performance in tight loops in exchange for
implementation freedom the current OpenGL bindings do not use on any
platform.

-Edward

On Fri, Oct 28, 2011 at 9:30 AM, Jason Dagit  wrote:

> Several months ago I announced my intent to take over maintainership
> of the Haskell OpenGL bindings and associated packages.  Today I have
> pushed new minor revisions to hackage.
>
> I have updated the following packages:
>  * OpenGL
>  * OpenGLRaw
>  * GLURaw
>  * GLUT
>
> The change log is very minor for each of these.  For my first release
> as the new maintainer I opted to be very conservative about changes.
> Consider this a bug fix release with updated metadata.
>
> Please report bugs to either the Haskell OpenGL mailing list or the
> appropriate issue tracker on the github page:
> http://www.haskell.org/mailman/listinfo/hopengl
> https://github.com/haskell-opengl
>
> I would like to give a big thank you to the following individuals:
> Sven Panne
> Lars Corbjin
> Dylan Simon
> Alexey Karakulov
> Balazs Komuves
>
> If you contributed to this release by giving advice, filing a bug
> report, sending a patch, or in some other way, and I've not listed
> your name then I apologize for the omission.
>
> Going forward I could use help with testing, development, and
> documentation so if you're interested in OpenGL and Haskell let me
> know and also keep your eyes out for calls for volunteers.
>
> Thank you!
> Jason
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] control-c only caught once -- bug?

2011-10-28 Thread Giovanni Tirloni
On Fri, Oct 28, 2011 at 6:07 PM, Rogan Creswick  wrote:

> On Fri, Oct 28, 2011 at 12:47 PM, Brian Johnson
>  wrote:
> > Hi,
> > The second time I press control-c, it isn't caught -- the program exits
> > instead.  Why?
>
> Interesting -- this works as you want with runghc, but it works as you
> describe when compiled with ghc --make. (under ghc 7.0.3 here as
> well.)
>
>
It works fine with runghc / ghc (7.0.3) on WinXP 32-bit.

Perhaps it's related to this:
http://blogs.embarcadero.com/eboling/2009/11/10/5628
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] control-c only caught once -- bug?

2011-10-28 Thread Rogan Creswick
On Fri, Oct 28, 2011 at 12:47 PM, Brian Johnson
 wrote:
> Hi,
> The second time I press control-c, it isn't caught -- the program exits
> instead.  Why?

Interesting -- this works as you want with runghc, but it works as you
describe when compiled with ghc --make. (under ghc 7.0.3 here as
well.)

--Rogan

> (The context is, I'm writing an interactive program where calculations may
> take a long time.  Control-c during a calculation should return the user to
> a prompt.  As things stand, this can only be done once -- the second
> calculation so interrupted causes the whole program to exit.)
> $ ./ctrlctest
> ^Cuser interrupt
> ^C    -- program exits!
> $ cat ctrlctest.hs
> module Main where
> import Control.Concurrent (threadDelay)
> import qualified Control.Exception as C
> main :: IO ()
> main = do (threadDelay 100 >> return ()) `C.catch` (\e ->
> print (e::C.AsyncException))
>          main
> $ ghc --version
> The Glorious Glasgow Haskell Compilation System, version 7.0.3
> $ uname -mrsv
> Darwin 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug  9 20:54:00 PDT
> 2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
> $ file ctrlctest
> ctrlctest: Mach-O executable i386
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>

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


[Haskell-cafe] control-c only caught once -- bug?

2011-10-28 Thread Brian Johnson
Hi,

The second time I press control-c, it isn't caught -- the program exits
instead.  Why?

(The context is, I'm writing an interactive program where calculations may
take a long time.  Control-c during a calculation should return the user to
a prompt.  As things stand, this can only be done once -- the second
calculation so interrupted causes the whole program to exit.)

$ ./ctrlctest
^Cuser interrupt
^C-- program exits!
$ cat ctrlctest.hs
module Main where

import Control.Concurrent (threadDelay)
import qualified Control.Exception as C

main :: IO ()
main = do (threadDelay 100 >> return ()) `C.catch` (\e ->
print (e::C.AsyncException))
 main

$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.0.3
$ uname -mrsv
Darwin 11.2.0 Darwin Kernel Version 11.2.0: Tue Aug  9 20:54:00 PDT
2011; root:xnu-1699.24.8~1/RELEASE_X86_64 x86_64
$ file ctrlctest
ctrlctest: Mach-O executable i386
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] What library package fulfills these requirements?

2011-10-28 Thread Claus Reinke
I am planning to give a workshop on FP using Haskell. 
The audience will be programmers with quite a bit of 
experience with conventional languages like Java and 
.net . I want to give them some feeling about FP. And 
hopefully, they will become interested so they want more...


My recommendations: 


- don't go for advanced coding styles or wow applications

- don't just walk through finished code, show how
   Haskell allows you to work with code (understanding
   and changing code, types as machine-checked 
   documentation, effect control, abstracting out ideas 
   for reuse, ..)


   you could:
   - show how to find relevant pieces of code in a large
   project, how to understand the piece, and how
   problematic interactions may be limited, compared 
   to Java-like languages


   - build up working code from empty (risky, but some
   Scala introductions have used this, and managed to
   give listeners the impression that they "get" what
   they see, and that they might be able to reproduce it)

   - take working code, then refactor it; for instance, start
   with "simple" code not too different from what an
   imperative coder might write, then start factoring
   out reusable patterns (when you get to factoring out
   control structures, you can go beyond what is easy
   in Java, and you can motivate introducing some of
   the more fancy Haskell idioms, in context)

   Don't be afraid of things going wrong, but have a script,
   know your tools: your audience will be interested to see 
   what you do when the unexpected happens (debugging

   support, source navigation, ...). As usual, have a fallback,
   to rescue the talk if you cannot fix things on the spot.

- it helps to know your audience: the advantages of Haskell
   over Java are different from those over Javascript; .Net
   coders might have different needs again (libraries; might
   prefer F# or something else that runs on the platform)

- complex apps or advanced coding patterns might wow 
   the audience (didn't think that was possible), but will 
   they try to reproduce that (will they even get the idea?)?


- simple everyday tasks solved in simple coding patterns
   might not wow in themselves, but make it easier to 
   follow the language differences, and can be built on


- try for a steady pace through the whole presentation
   (too many Haskell talks start great, then either take off
   and leave the audience behind, or lose pace and direction
   as the speaker tries to fill the time)

If the authors agree, it might be good to take an existing
talk and try to adapt/improve it. Would be good to work
toward one set of slides that can give a starting point for
such talks: a general set that one can point to, and sets of
modifications that tune the general set to different audiences.

There are lots of introduction to Haskell talks/slides on 
the web, btw., including these hands-on ones:


http://bos.github.com/strange-loop-2011/slides/slides.html 


(google for alternatives, but being on github, with an easy
HTML interface, allows for collaborative improvements)

My main recommendation again: don't just show working
code, show how to work with code.

Claus

I am wondering what package is suitable to be used as 
an example too? It needs to fulfill at least the following 
requirements:
+ I have to be able to explain the purpose of the software 
   in no more than 1 or 2 minutes
+ There should be parts of the code that can be easily 
   linked to the purpose /use of the package

+ These code parts must show the 'prettiness' of Haskell
+ It would be nice if there is something GUI-like to demo, 
  which runs under windows.

+ I prefer not to use some kind of a compiler as an example.



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


Re: [Haskell-cafe] A catch-all MonadIO instance

2011-10-28 Thread Bas van Dijk
On 28 October 2011 16:59, Ertugrul Soeylemez  wrote:
> I'm not sure whether this will work well.  You will get overlapping
> instances, and I don't see a way to hide instances when importing.
> Perhaps the OverlappingInstances extension could help here.

You're right.

I didn't get an overlapping instances error when building transformers
with this change (Note I didn't remove the custom MonadIO instances).

However when *using* liftIO I did get it:

> runReaderT (liftIO $ putStrLn "Hello World!") (10 :: Int)

:0:13:
Overlapping instances for MonadIO (ReaderT Int m0)
  arising from a use of `liftIO'
Matching instances:
  instance MonadIO m => MonadIO (ReaderT r m)
-- Defined at Control/Monad/Trans/Reader.hs:128:10-45
  instance (MonadTrans t, Monad (t m), MonadIO m) => MonadIO (t m)
-- Defined at Control/Monad/IO/Class.hs:43:10-64

Enabling the OverlappingInstances extension does fix it. However I
don't want to force users to use it so I keep the custom instances.

Thanks,

Bas

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


Re: [Haskell-cafe] Libraries to compare trees?

2011-10-28 Thread Ozgur Akgun
Hi.

On 27 October 2011 13:49, dokondr  wrote:

> Please advise on Haskell libraries to compare trees in textual
> representation.
> I need to compare both structure and node contents of two trees, find
> similar sub-trees, and need some metric to measure distance between two
> trees.
>

This might help: http://hackage.haskell.org/package/gdiff-1.0

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


Re: [Haskell-cafe] A catch-all MonadIO instance

2011-10-28 Thread Ertugrul Soeylemez
Bas van Dijk  wrote:

> I understand, portability is important for transformers. For
> monad-control it's less of an issue because I already use other
> language extensions (incl. RankNTypes).
>
> So I think I go ahead and add a catch-all instance for MonadControlIO
> to monad-control.

I'm not sure whether this will work well.  You will get overlapping
instances, and I don't see a way to hide instances when importing.
Perhaps the OverlappingInstances extension could help here.


Greets,
Ertugrul


-- 
nightmare = unsafePerformIO (getWrongWife >>= sex)
http://ertes.de/



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


Re: [Haskell-cafe] Reminder Munich Haskell

2011-10-28 Thread Ertugrul Soeylemez
Heinrich Hördegen  wrote:

> We would appreciate, if more people from outside Munich could join us,
> but I understand if it is too far.

The problem is that all the meetings seem to be planned in the middle of
the week.  If you could throw in some more convenient dates in the
weekend or before holidays, I would certainly join.

Another idea is to create a similar meeting in or near Stuttgart.  If
any Haskellers from Baden-Württemberg are interested, I would be happy
to arrange a meeting.


Greets,
Ertugrul


-- 
nightmare = unsafePerformIO (getWrongWife >>= sex)
http://ertes.de/



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


Re: [Haskell-cafe] A catch-all MonadIO instance

2011-10-28 Thread Bas van Dijk
On 28 October 2011 16:23, Antoine Latter  wrote:
> I would then need OverlappingInstances to declare a MonadIO instance
> for any similar looking instance head (that is `t m`) where 't' was
> not a proper MonadTrans instance, which sounds like a common enough
> things to do.

I actually have never seen a MonadIO instance for a `t m` where 't' is
not a MonadTrans instance.

On 28 October 2011 16:24, Paterson, Ross  wrote:
> It's done that way in transformers to keep the package portable.
> As for doing it elsewhere, although this catch-all instance requires
> UndecidableInstances, I don't think it introduces non-termination.

I understand, portability is important for transformers. For
monad-control it's less of an issue because I already use other
language extensions (incl. RankNTypes).

So I think I go ahead and add a catch-all instance for MonadControlIO
to monad-control.

Thanks for your responses,

Bas

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


Re: [Haskell-cafe] A catch-all MonadIO instance

2011-10-28 Thread Paterson, Ross
Bas van Dijk writes:
> Is it unsafe to add the following catch-all MonadIO instance to
> transformers' Control.Monad.IO.Class module?
>
> {-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
>
> instance (MonadTrans t, Monad (t m), MonadIO m) => MonadIO (t m) where
> liftIO = lift . liftIO
>
> It could get rid of all the similarly looking instances:
>
> instance (MonadIO m) => MonadIO (ReaderT r m) where
> liftIO = lift . liftIO
> instance (MonadIO m) => MonadIO (StateT s m) where
> liftIO = lift . liftIO
> instance (Monoid w, MonadIO m) => MonadIO (WriterT w m) where
> liftIO = lift . liftIO
> ...

It's done that way in transformers to keep the package portable.
As for doing it elsewhere, although this catch-all instance requires
UndecidableInstances, I don't think it introduces non-termination.

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


Re: [Haskell-cafe] A catch-all MonadIO instance

2011-10-28 Thread Antoine Latter
On Fri, Oct 28, 2011 at 9:11 AM, Bas van Dijk  wrote:
> Hello,
>
> Is it unsafe to add the following catch-all MonadIO instance to
> transformers' Control.Monad.IO.Class module?
>
> {-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances #-}
>
> instance (MonadTrans t, Monad (t m), MonadIO m) => MonadIO (t m) where
>    liftIO = lift . liftIO
>
> It could get rid of all the similarly looking instances:
>
> instance (MonadIO m) => MonadIO (ReaderT r m) where
>    liftIO = lift . liftIO
> instance (MonadIO m) => MonadIO (StateT s m) where
>    liftIO = lift . liftIO
> instance (Monoid w, MonadIO m) => MonadIO (WriterT w m) where
>    liftIO = lift . liftIO
> ...
>

I would then need OverlappingInstances to declare a MonadIO instance
for any similar looking instance head (that is `t m`) where 't' was
not a proper MonadTrans instance, which sounds like a common enough
things to do.

I usually don't bother writing a MonadTrans instance in my own apps,
and I try to avoid using OverlappingInstances unless there's no other
way to do something.

Although I don't have a better solution to offer for the exploding
instance problem with mtl-like libraries.

Antoine

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


[Haskell-cafe] A catch-all MonadIO instance

2011-10-28 Thread Bas van Dijk
Hello,

Is it unsafe to add the following catch-all MonadIO instance to
transformers' Control.Monad.IO.Class module?

{-# LANGUAGE FlexibleInstances, FlexibleContexts, UndecidableInstances #-}

instance (MonadTrans t, Monad (t m), MonadIO m) => MonadIO (t m) where
liftIO = lift . liftIO

It could get rid of all the similarly looking instances:

instance (MonadIO m) => MonadIO (ReaderT r m) where
liftIO = lift . liftIO
instance (MonadIO m) => MonadIO (StateT s m) where
liftIO = lift . liftIO
instance (Monoid w, MonadIO m) => MonadIO (WriterT w m) where
liftIO = lift . liftIO
...

The reason I ask is that I want to do something similar for
monad-control's MonadControlIO type class. But I'm not sure if I don't
introduce any undecidability in the type-checker.

Regards,

Bas

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


Re: [Haskell-cafe] What is the status of GPU-accelerated Haskell?

2011-10-28 Thread Ryan Newton
There are CUDA bindings:

   http://hackage.haskell.org/package/cuda

And that is what the higher-level GPU-programming package, Accelerate, is
based on:

   http://hackage.haskell.org/package/accelerate



On Thu, Oct 27, 2011 at 4:04 PM, serialhex  wrote:

> Hi, there is an OpenCL / Haskell thread floating around the ML, mostly it's
> a dew ppl talking about merging the 5 (or so) bindings to the OpenCL api and
> getting spiffy multi-threaded haskell-awesomeness out of that.  i think they
> are discussing the benefits/drawbacks of a pure-ish api conversion or a more
> haskell-ish conversion, or some combination thereof.
>
> either way, it exsists, and it's happening (though i'm not so sure about
> CUDA bindings...  but OpenCL will work on Nvidia & ATI cards the same)
>
> hex
>
>
>
> On Thu, Oct 27, 2011 at 3:45 PM, Rafael Gustavo da Cunha Pereira Pinto <
> rafaelgcpp.li...@gmail.com> wrote:
>
>>
>>
>> Hi folks,
>>
>> I just bought a NVidia Fermi-based card and remembered reading a few
>> months (years?) ago about some effort to accelerate array processing in
>> Haskell using GPUs.
>>
>> How is this going on? Any progresses? Do we have GPU based DPH already?
>> (the last one is a joke...)
>>
>> I keep thinking on the advantages of such GPU data processing on the
>> signal processing field.
>>
>> Best regards,
>>
>> Rafael Gustavo da Cunha Pereira Pinto
>>
>>
>> ___
>> Haskell-Cafe mailing list
>> Haskell-Cafe@haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
>
> --
> *  my blog is cooler than yours: http://serialhex.github.com
> *  The wise man said: "Never argue with an idiot. They bring you down to
> their level and beat you with experience."
> *  As a programmer, it is your job to put yourself out of business. What
> you do today can be automated tomorrow. ~Doug McIlroy
> ---
> CFO: “What happens if we train people and they leave?”
> CTO: “What if we don’t and they stay?”
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] ANN: Haskell OpenGL package updates

2011-10-28 Thread Jason Dagit
Several months ago I announced my intent to take over maintainership
of the Haskell OpenGL bindings and associated packages.  Today I have
pushed new minor revisions to hackage.

I have updated the following packages:
  * OpenGL
  * OpenGLRaw
  * GLURaw
  * GLUT

The change log is very minor for each of these.  For my first release
as the new maintainer I opted to be very conservative about changes.
Consider this a bug fix release with updated metadata.

Please report bugs to either the Haskell OpenGL mailing list or the
appropriate issue tracker on the github page:
http://www.haskell.org/mailman/listinfo/hopengl
https://github.com/haskell-opengl

I would like to give a big thank you to the following individuals:
Sven Panne
Lars Corbjin
Dylan Simon
Alexey Karakulov
Balazs Komuves

If you contributed to this release by giving advice, filing a bug
report, sending a patch, or in some other way, and I've not listed
your name then I apologize for the omission.

Going forward I could use help with testing, development, and
documentation so if you're interested in OpenGL and Haskell let me
know and also keep your eyes out for calls for volunteers.

Thank you!
Jason

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


Re: [Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Eugene Kirpichov
On Fri, Oct 28, 2011 at 2:32 PM, Daniel Fischer <
daniel.is.fisc...@googlemail.com> wrote:

> On Friday 28 October 2011, 11:57:54, Eugene Kirpichov wrote:
> > Another question: Can I unpack some fields in a record and not unpack
> > others?
>
> Yes, no problem with that.
>
> > Does their order matter then?
>
> In what way? The order of the fields in the definition of the type will
> determine the order in which the components (pointers/unpacked values)
> appear in the constructor. That may influence performance, but I wouldn't
> expect a significant difference.
>

Oh, OK. I was just thinking, maybe, you can only unpack a prefix of the
field set...


-- 
Eugene Kirpichov
Principal Engineer, Mirantis Inc. http://www.mirantis.com/
Editor, http://fprog.ru/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Daniel Fischer
On Friday 28 October 2011, 11:57:54, Eugene Kirpichov wrote:
> Another question: Can I unpack some fields in a record and not unpack
> others?

Yes, no problem with that. 

> Does their order matter then?

In what way? The order of the fields in the definition of the type will 
determine the order in which the components (pointers/unpacked values) 
appear in the constructor. That may influence performance, but I wouldn't 
expect a significant difference.

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


Re: [Haskell-cafe] Efficient mutable arrays in STM

2011-10-28 Thread Benjamin Franksen
David Barbour wrote:
> Create an extra TVar Int for every `chunk` in the array (e.g every 256
> elements, tuned to your update patterns). Read-write it (increment it, be
> sure to force evaluation) just before every time you write an element or
> slice it or slice the array element.

Incrementing and forcing evaluation should not be necessary, a  TVar ()  
should be enough. I would be very much surprised if the internal STM 
machinery compares the actual _values_ of what is inside a TVar, I guess it 
just notes that a read or a write happened. Anyway, this is just a guess, I 
wonder if these details are documented somewhere...

Cheers
Ben


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


Re: [Haskell-cafe] Reminder Munich Haskell

2011-10-28 Thread Heinrich Hördegen

 Hi Ertugrul,

sorry for the late answer, somehow I missed this message. For anyone who 
is interested:


Our meeting in Munich last Wednesday went very well. We've been 14 
persons, it startet at 19h30 and continued until after 23h00 with lively 
discussions. Our next meeting will be at Tue, 29 Nov 2011 
(www.haskell-munich.de).


We would appreciate, if more people from outside Munich could join us, 
but I understand if it is too far.


Heinrich Hördegen




On 27.10.2011 14:28, Ertugrul Soeylemez wrote:

Heinrich Hördegen  wrote:


this evening, Haskeller meet at Cafe Puck at 19h30:
www.haskell-munich.de

May I ask how the evening went?  I would love to join, but it's just too
far away from here (Ludwigsburg near Stuttgart) for work days.


Greets,
Ertugrul




--
--

hoerde...@funktional.info
www.funktional.info

--


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


Re: [Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Simon Peyton-Jones
newtypes always turn into no code.   The UNPACK is therefore asking to unpack 
the Integer inside a Day, and that we can't do because Integer has more than 
one data constructor.  Ditto Pico.  So just drop the UNPACKS. Keep the ! 
though, to keep it strict

S

From: haskell-cafe-boun...@haskell.org 
[mailto:haskell-cafe-boun...@haskell.org] On Behalf Of Eugene Kirpichov
Sent: 28 October 2011 10:41
To: Haskell Cafe
Subject: [Haskell-cafe] When does the UNPACK pragma work?

Hi,

I'm trying to speed up Data.Time (the time package) 'cause my program is 
spending a very substantial fraction of time manipulating dates.

I decided to start with strictifying and unpacking the date/time types, as 
there's no point in having them be lazy and I indeed had a lot of allocation in 
date/time arithmetic in my performance profile.

data UTCTime = UTCTime {
utctDay :: {-# UNPACK #-} !Day,
utctDayTime :: {-# UNPACK #-} !DiffTime
}

(unpacks and strictness mine)

newtype Day = ModifiedJulianDay {toModifiedJulianDay :: Integer}
newtype DiffTime = MkDiffTime Pico

And Pico is also essentially a newtype for Integer.

So, I'm getting warnings on this definition of UTCTime.
QUESTION: Is it the case that I can only UNPACK primitive fields, and not even 
their newtypes?

Data\Time\Clock\UTC.hs:30:16:
Warning: Ignoring unusable UNPACK pragma on the
 first argument of `UTCTime'
In the definition of data constructor `UTCTime'
In the data type declaration for `UTCTime'

Data\Time\Clock\UTC.hs:30:16:
Warning: Ignoring unusable UNPACK pragma on the
 second argument of `UTCTime'
In the definition of data constructor `UTCTime'
In the data type declaration for `UTCTime'



--
Eugene Kirpichov
Principal Engineer, Mirantis Inc. http://www.mirantis.com/
Editor, http://fprog.ru/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Eugene Kirpichov
Another question: Can I unpack some fields in a record and not unpack
others? Does their order matter then?

On Fri, Oct 28, 2011 at 1:57 PM, Eugene Kirpichov wrote:

> Oh, I see, thanks!
>
> So then, I guess, the solution would be to use a fixed-precision integer
> type instead.
>
>
> On Fri, Oct 28, 2011 at 1:54 PM, Daniel Fischer <
> daniel.is.fisc...@googlemail.com> wrote:
>
>> On Friday 28 October 2011, 11:41:15, Eugene Kirpichov wrote:
>> > newtype Day = ModifiedJulianDay {toModifiedJulianDay :: Integer}
>> > newtype DiffTime = MkDiffTime Pico
>> >
>> > And Pico is also essentially a newtype for Integer.
>> >
>> > So, I'm getting warnings on this definition of UTCTime.
>> > QUESTION: Is it the case that I can only UNPACK primitive fields, and
>> > not even their newtypes?
>>
>> The problem is that you can't {-# UNPACK #-} Integer.
>> You can only unpack single-constructor types.
>>
>
>
>
> --
> Eugene Kirpichov
> Principal Engineer, Mirantis Inc. http://www.mirantis.com/
> Editor, http://fprog.ru/
>



-- 
Eugene Kirpichov
Principal Engineer, Mirantis Inc. http://www.mirantis.com/
Editor, http://fprog.ru/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Eugene Kirpichov
Oh, I see, thanks!

So then, I guess, the solution would be to use a fixed-precision integer
type instead.

On Fri, Oct 28, 2011 at 1:54 PM, Daniel Fischer <
daniel.is.fisc...@googlemail.com> wrote:

> On Friday 28 October 2011, 11:41:15, Eugene Kirpichov wrote:
> > newtype Day = ModifiedJulianDay {toModifiedJulianDay :: Integer}
> > newtype DiffTime = MkDiffTime Pico
> >
> > And Pico is also essentially a newtype for Integer.
> >
> > So, I'm getting warnings on this definition of UTCTime.
> > QUESTION: Is it the case that I can only UNPACK primitive fields, and
> > not even their newtypes?
>
> The problem is that you can't {-# UNPACK #-} Integer.
> You can only unpack single-constructor types.
>



-- 
Eugene Kirpichov
Principal Engineer, Mirantis Inc. http://www.mirantis.com/
Editor, http://fprog.ru/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Daniel Fischer
On Friday 28 October 2011, 11:41:15, Eugene Kirpichov wrote:
> newtype Day = ModifiedJulianDay {toModifiedJulianDay :: Integer}
> newtype DiffTime = MkDiffTime Pico
> 
> And Pico is also essentially a newtype for Integer.
> 
> So, I'm getting warnings on this definition of UTCTime.
> QUESTION: Is it the case that I can only UNPACK primitive fields, and
> not even their newtypes?

The problem is that you can't {-# UNPACK #-} Integer.
You can only unpack single-constructor types.

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


[Haskell-cafe] When does the UNPACK pragma work?

2011-10-28 Thread Eugene Kirpichov
Hi,

I'm trying to speed up Data.Time (the time package) 'cause my program is
spending a very substantial fraction of time manipulating dates.

I decided to start with strictifying and unpacking the date/time types, as
there's no point in having them be lazy and I indeed had a lot of allocation
in date/time arithmetic in my performance profile.

data UTCTime = UTCTime {
utctDay :: {-# UNPACK #-} !Day,
utctDayTime :: {-# UNPACK #-} !DiffTime
}

(unpacks and strictness mine)

newtype Day = ModifiedJulianDay {toModifiedJulianDay :: Integer}
newtype DiffTime = MkDiffTime Pico

And Pico is also essentially a newtype for Integer.

So, I'm getting warnings on this definition of UTCTime.
QUESTION: Is it the case that I can only UNPACK primitive fields, and not
even their newtypes?

Data\Time\Clock\UTC.hs:30:16:
Warning: Ignoring unusable UNPACK pragma on the
 first argument of `UTCTime'
In the definition of data constructor `UTCTime'
In the data type declaration for `UTCTime'

Data\Time\Clock\UTC.hs:30:16:
Warning: Ignoring unusable UNPACK pragma on the
 second argument of `UTCTime'
In the definition of data constructor `UTCTime'
In the data type declaration for `UTCTime'



-- 
Eugene Kirpichov
Principal Engineer, Mirantis Inc. http://www.mirantis.com/
Editor, http://fprog.ru/
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] What library package fulfills these requirements?

2011-10-28 Thread Sean Leather
Hi Han,

On Fri, Oct 28, 2011 at 09:06, Han Joosten wrote:

> I am planning to give a workshop on FP using Haskell. The audience will be
> programmers with quite a bit of experience with conventional languages like
> Java and .net . I want to give them some feeling about FP. And hopefully,
> they will become interested so they want more...


Mark Lentczner recently gave a great talk to a similarly experienced
audience at Google.

Video: http://www.youtube.com/watch?v=b9FagOVqxmI
Code: https://github.com/mtnviewmark/haskell-amuse-bouche

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


Re: [Haskell-cafe] Libraries to compare trees?

2011-10-28 Thread dokondr
On Fri, Oct 28, 2011 at 2:31 AM, Ivan Lazar Miljenovic <
ivan.miljeno...@gmail.com> wrote:

> Well, for arbitrary directed graphs, FGL is probably your best bet, or
> roll-your-own.
>
> _But_ you'll need to write the parser yourself using something like
> trifecta, uu-parsinglib, polyparse, parsec, etc.
>
> It would help if you described the structure of these graphs and what
> kind of support you'd want in a data structure.
>


Thanks for the feedback!
As I wrote in first message I need to compare both structure and node
contents of two graphs, find similar sub-graphs, and need some metric to
measure distance between two graphs. These graphs are produced by POS (part
of speech) sentence tagging. POS tagging is done by Standford statistical
parser: http://nlp.stanford.edu/software/lex-parser.shtml

For example in the graph G1:
(ROOT
  (S
(NP (DT The) (NN voice) (NN quality))
(VP (VBD was)
  (ADJP (JJ clear) (RB too)))
(. .)))

G1 has an NP node (lets call this sub-graph SG1)  which has three child leaf
nodes: (DT The) (NN voice) (NN quality), where
DT, NN - nodes names, and
"The", "voice", "quality" - corresponding leaf values of these nodes.

I need to compare this graph with graph G2:
(ROOT
  (S
(SBAR (IN Although)
  (S
(NP (DT the) (NN battery) (NN life))
(VP (VBD was) (RB not)
  (ADJP (JJ long)
(, ,)
(NP (DT that))
(VP (VBZ is)
  (VP (VBN ok)
(PP (IN for)
  (NP (PRP me)
(. .)))

G2 also has the NP node (let's call it sub-graph SG2)  which also has three
child leaf nodes: (DT the) (NN battery) (NN life))
I need to find that G1 and G2 has sub-graphs SG1 and SG2 with the similar
structure, but with different values of the leaf nodes.
I also need to devise some general metric that will allow me to estimate
distance between any two graphs. This distance should account both for
structural and leaf-node values similarity.

It would be easier to measure distance between vectors then graphs. So I am
thinking how to convert directed graph (that results from POS tagging) into
vector. Any ideas, links here?

Thanks!

On 28 October 2011 00:27, dokondr  wrote:
> My mistake: need advice on libraries and data types not for trees but for
> directed graphs.
>
> On Thu, Oct 27, 2011 at 4:49 PM, dokondr  wrote:
>>
>> Please advise on Haskell libraries to compare trees in textual
>> representation.
>> I need to compare both structure and node contents of two trees, find
>> similar sub-trees, and need some metric to measure distance between two
>> trees.
>> Also need advice on simple parser to convert textual tree representation
>> into a data type convenient for tree manipulation (comparison, matching,
>> etc.) What data type to use for trees with arbitrary structure?
>>
>> Example trees:
>>
>> *** Tree 1:
>> (ROOT
>>   (S
>> (NP (DT The) (NN voice) (NN quality))
>> (VP (VBD was)
>>   (ADJP (JJ clear) (RB too)))
>> (. .)))
>>
>>
>> *** Tree 2:
>> (ROOT
>>   (S
>> (SBAR (IN Although)
>>   (S
>> (NP (DT the) (NN battery) (NN life))
>> (VP (VBD was) (RB not)
>>   (ADJP (JJ long)
>> (, ,)
>> (NP (DT that))
>> (VP (VBZ is)
>>   (VP (VBN ok)
>> (PP (IN for)
>>   (NP (PRP me)
>> (. .)))
>>
>> Thanks!
>> Dmitri
>>
>
>
>
>
>

> ___
> > Haskell-Cafe mailing list
> > Haskell-Cafe@haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> >
> >
>
>
>
> --
> Ivan Lazar Miljenovic
> ivan.miljeno...@gmail.com
> IvanMiljenovic.wordpress.com
>



-- 
All the best,
Dmitri O. Kondratiev

"This is what keeps me going: discovery"
doko...@gmail.com
http://sites.google.com/site/dokondr/welcome
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] What library package fulfills these requirements?

2011-10-28 Thread Aatch
On 28 October 2011 20:46, David Barbour  wrote:
> On Fri, Oct 28, 2011 at 12:06 AM, Joosten, Han  wrote:
>>
>> I am planning to give a workshop on FP using Haskell. The audience will be
>> programmers with quite a bit of experience with conventional languages like
>> Java and .net . I want to give them some feeling about FP. And hopefully,
>> they will become interested so they want more...
>>
>> A couple of years ago, Simon Peyton Jones gave a splendid
>> presentation with a comparable goal. He used Xmonad as an example to show
>> some 'real code'. I like this idea, because Xmonad contains some code that
>> is suitable to explain (not too hard to understand), and still gives a
>> feeling about the power of Haskell. However, Xmonad needs X11 to run. Me and
>> most people in the audience are stuck to windows (no flames please ;-s ) ,
>> and don't want to fiddle around with cygwin or the likes)
>> I am wondering what package is suitable to be used as an example too? It
>> needs to fulfill at least the following requirements:
>> + I have to be able to explain the purpose of the software in no more than
>> 1 or 2 minutes
>> + There should be parts of the code that can be easily linked to the
>> purpose /use of the package
>> + These code parts must show the 'prettiness' of Haskell
>> + It would be nice if there is something GUI-like to demo, which runs
>> under windows.
>> + I prefer not to use some kind of a compiler as an example.
>>
>> Now the question is: What package would you suggest, and of course, why?
>>
>> Thanks!
>>
>>
>>
>> Han Joosten.
>
> Haskore - music generation
> Yesod, Snap, or HAppS - quick web application
> Diagrams - easy image composition, 2D
> GPipe - functional composition of 3D graphics and shaders (similar to Conal
> Elliott's Vertigo).
> (cabal - easy installs, downloads, packaging)
>

I'm with david on the web apps one. Especially since you can demo it
and give out a link to people at the workshop. Most programmers are
familiar with the way web apps work and wont have to get over that
hurdle that other, less common application types might present.

---
James Miller

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


Re: [Haskell-cafe] What library package fulfills these requirements?

2011-10-28 Thread David Barbour
Haskore - music generation
Yesod, Snap, or HAppS - quick web application
Diagrams - easy image composition, 2D
GPipe - functional composition of 3D graphics and shaders (similar to Conal
Elliott's Vertigo).
(cabal - easy installs, downloads, packaging)


On Fri, Oct 28, 2011 at 12:06 AM, Joosten, Han  wrote:

>  I am planning to give a workshop on FP using Haskell. The audience will
> be programmers with quite a bit of experience with conventional languages
> like Java and .net . I want to give them some feeling about FP. And
> hopefully, they will become interested so they want more...
>
> A couple of years ago, Simon Peyton Jones gave a splendid 
> presentation
>  with
> a comparable goal. He used Xmonad as an example to show some 'real code'. I
> like this idea, because Xmonad contains some code that is suitable to
> explain (not too hard to understand), and still gives a feeling about the
> power of Haskell. However, Xmonad needs X11 to run. Me and most people in
> the audience are stuck to windows (no flames please ;-s ) , and don't want
> to fiddle around with cygwin or the likes)
> I am wondering what package is suitable to be used as an example too? It
> needs to fulfill at least the following requirements:
> + I have to be able to explain the purpose of the software in no more than
> 1 or 2 minutes
> + There should be parts of the code that can be easily linked to the
> purpose /use of the package
> + These code parts must show the 'prettiness' of Haskell
> + It would be nice if there is something GUI-like to demo, which runs under
> windows.
> + I prefer not to use some kind of a compiler as an example.
>
> Now the question is: What package would you suggest, and of course, why?
>
> Thanks!
>
>
>
> Han Joosten.
>
>
>
>
>
>
>
>
>
>
> Dit bericht is vertrouwelijk en kan geheime informatie bevatten enkel
> bestemd voor de geadresseerde. Indien dit bericht niet voor u is bestemd,
> verzoeken wij u dit onmiddellijk aan ons te melden en het bericht te
> vernietigen. Aangezien de integriteit van het bericht niet veilig gesteld is
> middels verzending via internet, kan Atos Nederland B.V. niet aansprakelijk
> worden gehouden voor de inhoud daarvan. Hoewel wij ons inspannen een
> virusvrij netwerk te hanteren, geven wij geen enkele garantie dat dit
> bericht virusvrij is, noch aanvaarden wij enige aansprakelijkheid voor de
> mogelijke aanwezigheid van een virus in dit bericht. Op al onze
> rechtsverhoudingen, aanbiedingen en overeenkomsten waaronder Atos Nederland
> B.V. goederen en/of diensten levert zijn met uitsluiting van alle andere
> voorwaarden de Leveringsvoorwaarden van Atos Nederland B.V. van toepassing.
> Deze worden u op aanvraag direct kosteloos toegezonden.
>
> This e-mail and the documents attached are confidential and intended solely
> for the addressee; it may also be privileged. If you receive this e-mail in
> error, please notify the sender immediately and destroy it. As its integrity
> cannot be secured on the Internet, the Atos Nederland B.V. group liability
> cannot be triggered for the message content. Although the sender endeavours
> to maintain a computer virus-free network, the sender does not warrant that
> this transmission is virus-free and will not be liable for any damages
> resulting from any virus transmitted. On all offers and agreements under
> which Atos Nederland B.V. supplies goods and/or services of whatever nature,
> the Terms of Delivery from Atos Nederland B.V. exclusively apply. The Terms
> of Delivery shall be promptly submitted to you on your request.
>
> Atos Nederland B.V. / Utrecht
> KvK Utrecht 30132762
>
> ___
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] What library package fulfills these requirements?

2011-10-28 Thread Joosten, Han
I am planning to give a workshop on FP using Haskell. The audience will be 
programmers with quite a bit of experience with conventional languages like 
Java and .net . I want to give them some feeling about FP. And hopefully, they 
will become interested so they want more...

A couple of years ago, Simon Peyton Jones gave a splendid 
presentation
 with a comparable goal. He used Xmonad as an example to show some 'real code'. 
I like this idea, because Xmonad contains some code that is suitable to explain 
(not too hard to understand), and still gives a feeling about the power of 
Haskell. However, Xmonad needs X11 to run. Me and most people in the audience 
are stuck to windows (no flames please ;-s ) , and don't want to fiddle around 
with cygwin or the likes)
I am wondering what package is suitable to be used as an example too? It needs 
to fulfill at least the following requirements:
+ I have to be able to explain the purpose of the software in no more than 1 or 
2 minutes
+ There should be parts of the code that can be easily linked to the purpose 
/use of the package
+ These code parts must show the 'prettiness' of Haskell
+ It would be nice if there is something GUI-like to demo, which runs under 
windows.
+ I prefer not to use some kind of a compiler as an example.

Now the question is: What package would you suggest, and of course, why?

Thanks!

Han Joosten.







Dit bericht is vertrouwelijk en kan geheime informatie bevatten enkel bestemd 
voor de geadresseerde. Indien dit bericht niet voor u is bestemd, verzoeken wij 
u dit onmiddellijk aan ons te melden en het bericht te vernietigen. Aangezien 
de integriteit van het bericht niet veilig gesteld is middels verzending via 
internet, kan Atos Nederland B.V. niet aansprakelijk worden gehouden voor de 
inhoud daarvan. Hoewel wij ons inspannen een virusvrij netwerk te hanteren, 
geven wij geen enkele garantie dat dit bericht virusvrij is, noch aanvaarden 
wij enige aansprakelijkheid voor de mogelijke aanwezigheid van een virus in dit 
bericht. Op al onze rechtsverhoudingen, aanbiedingen en overeenkomsten 
waaronder Atos Nederland B.V. goederen en/of diensten levert zijn met 
uitsluiting van alle andere voorwaarden de Leveringsvoorwaarden van Atos 
Nederland B.V. van toepassing. Deze worden u op aanvraag direct kosteloos 
toegezonden.

This e-mail and the documents attached are confidential and intended solely for 
the addressee; it may also be privileged. If you receive this e-mail in error, 
please notify the sender immediately and destroy it. As its integrity cannot be 
secured on the Internet, the Atos Nederland B.V. group liability cannot be 
triggered for the message content. Although the sender endeavours to maintain a 
computer virus-free network, the sender does not warrant that this transmission 
is virus-free and will not be liable for any damages resulting from any virus 
transmitted. On all offers and agreements under which Atos Nederland B.V. 
supplies goods and/or services of whatever nature, the Terms of Delivery from 
Atos Nederland B.V. exclusively apply. The Terms of Delivery shall be promptly 
submitted to you on your request.

Atos Nederland B.V. / Utrecht
KvK Utrecht 30132762
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe