Re: [Haskell-cafe] A Mascot

2011-11-18 Thread João Paulo Pizani Flor
Apart from the whole big discussion about an official mascot for
Haskell, I for one am SURELY adopting Da, the Lamb from now on on my
desktop background and on the lid of my laptop! :D

I think some cute animal to connect with is something nice to us, as a
community :)  Could you imagine Linux without Tux?! Now I cannot
imagine Haskell without the Lamb Da.


João Paulo Pizani Flor
joaopiz...@gmail.com
Computer Science
Federal University of Santa Catarina - Brazil



On Fri, Nov 18, 2011 at 7:23 AM, Ketil Malde ke...@malde.org wrote:
 John Meacham j...@repetae.net writes:

 People tend to concentrate on the lambda which cooresponds to the
 functional aspect of haskell when designing logos. Not nearly enough
 attention is paid to the other striking feature, the

 What about types?  This is a distinguishing feature from many of the
 other lambda-users out there, isn't \lambda_\tau used to signify that?

 -k
 --
 If I haven't seen further, it is by standing in the footprints of giants

 ___
 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] A Brazilian community for Haskell

2011-11-09 Thread João Paulo Pizani Flor
Very nice initiative Giovanni, I've already subscribed to everything! :)

Let's now see how many we are, perhaps work together on some documentation... :D


João Paulo Pizani Flor
joaopiz...@gmail.com
Computer Science - UFSC



On Tue, Nov 8, 2011 at 3:06 PM, Giovanni Tirloni gtirl...@sysdroid.com wrote:
 Hello,

  To gather all Haskellers in Brazil, a new mailing list has been created:

    http://projects.haskell.org/cgi-bin/mailman/listinfo/haskell-br

  There is also the #haskell-br channel on Freenode as well as Twitter and
 Google+ feeds to keep everybody updated on recent activities.

  More information at:  http://www.haskell-br.org/

 []'s
 --
 Giovanni


 ___
 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] Utrecht Summer School in Applied Functional Programming

2011-05-29 Thread João Paulo Pizani Flor
Hi dear Haskellers!

I'm a senior undergraduate Computer Science student in Brazil, and have
always loved Haskell and wrote most of
my lab assignments and course projects in it. Haskellers are a very rare
species here in Brazil, but I always
tried my best to motivate people around me presenting some seminars, writing
some tutorials, etc. My personal
Haskell project: http://launchpad.net/presto

What joy I had then last Friday, when I found out I've been accepted to
participate in the Utrecht Summer
School 2011, in the course Applied Functional Programming in Haskell
(http://www.utrechtsummerschool.nl/index.php?type=coursescode=H9). In fact,
I got a scholarship from
Utrecht University that covers tuition fees and housing, but not the plane
tickets to/from the Netherlands.

That's the point where I need your advice: without some sort of financial
support I won't be able to buy the
tickets and travel to Utrecht. I am already searching from grants here in
Brazil, but I think it will be hard
to find something, not to say impossible. So, do you know any
program/fund/foundation to which I can apply and
get the needed financial support?


Best regards,

João Paulo Pizani Flor
joaopiz...@gmail.com
Computer Science
Federal University of Santa Catarina - Brazil
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


[Haskell-cafe] (automatic) type classes context inference

2010-08-28 Thread João Paulo


Hello everyone,

I am developing a toolset in which I have several (multiparameter)  
type classes;


It is often the case that I can only define a data-type X as an  
instance of one such class (say A), if X is an instance of another  
class (say B);


The thing is that, while it is hard for me, because of all the type  
parameters that I have to deal with, to add


  'X is an instance of B'

to the context cxt_A in

  'instance cxt_A = A X'

ghc is always able to correctly infer all type parameters; In fact, I  
always get:


  'Could not deduce (B X t1 ... tn)
  from the context cxt_A arising from ...
   Probable fix: add (B X t1 ... tn) to the context cxt_A ...'

In my case, this is the fix that I always need: most of the times, I  
am just copy-pasting (B X t1 ... tn) to cxt_A!


Is there a way, say a compilation option, to avoid this?

can anyone please help me here? :)

thank you very much

--
João Paulo Fernandes
Universidade do Minho
www.di.uminho.pt/~jpaulo



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


Re: [Haskell-cafe] Happy GLR parser creation problem

2010-06-02 Thread João Paulo

Hi Paul,

During my internship I developed a GLR parser generator and a grammar  
interpreter fully in Haskell, in a tool called HaGLR;


You'll find documentation on the tool at:

http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/HaGLR

The tool is available as part of the UMinho Haskell libraries at:

http://wiki.di.uminho.pt/twiki/bin/view/Research/PURe/PUReSoftware

I have to say that the tool was maintained until 2005/2006, but that,  
unfortunately, not any more;


Anyway, the tool itself consisted of very simple Haskell code, so it  
should easily be updated/altered;


Hope it helps!

Joao

--
João Paulo Fernandes
Universidade do Minho
www.di.uminho.pt/~jpaulo



Em 2010/06/02, às 11:55, Paul Jensen escreveu:


[Apologies if this is the wrong place to ask -- there appears to be no
Happy-specific list.]

I'm interested in experimenting with using a GLR parser to parse some
data that could be interpreted in different ways. I'm trying to use
Happy's GLR mode but I am encountering an error building one of the
examples (specifically
http://darcs.haskell.org/happy/examples/glr/expr-eval/Expr.y):

[Mac OS X 10.6.3]

rhoda:expr-eval psj$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.12.1

rhoda:expr-eval psj$ happy --version
Happy Version 1.18.4 Copyright (c) 1993-1996 Andy Gill, Simon Marlow
(c) 1997-2005 Simon Marlow

rhoda:expr-eval psj$ happy --glr --ghc Expr.y
shift/reduce conflicts:  9
happy: src/ProduceGLRCode.lhs:190:11-76: Irrefutable pattern failed
for pattern (pre, drop_me : post)

It's the same error someone else encountered last year, described at
http://www.haskell.org/pipermail/haskell-cafe/2009-July/063770.html .

Does anyone have any insights into this? If Happy's GLR support isn't
working just now, are there any other parser generators that produce
GLR parsers that anyone would recommend having a look at?

Many thanks,
psj
___
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] GADT pattern match in non-rigid context

2009-09-28 Thread João Paulo


Dear all,

The following is a (I'm afraid too large!) fragment of a program  
implementing a GADT-based generic zipper:


**
data Zipper path where
Zipper :: hole  - Context (Up (left, hole, right) up) - Zipper  
(Up (left, hole, right) up)


data Context path where
ContTop :: Context (Up (Top, a, Top) Top)
Cont:: Left l (h - r) - Right r h_parent - Context (Up  
(l_parent, h_parent, r_parent) path) - Context (Up (l, h, r) (Up  
(l_parent, h_parent, r_parent) path))


data Up a b
data Top

data Left contains expects where
LeftUnit :: a - Left Top a
LeftCons :: Left c (b - a) - b - Left (c - b) a

data Right provides final where
RightNull :: Right final final
RightCons :: b - Right a final - Right (b - a) final

data Erase c a = forall b. (Typeable b) = Erase (c b a)

ff :: (Typeable l, Data h, Typeable r, Typeable up)
 = Zipper (Up (l, h, r) up) - Erase Left h
ff (Zipper h c) = (gfoldl erased_left_cons erased_left_unit h)

gg ::  (Typeable l_down, Typeable h_down, Data h) = Erase Left h -  
Maybe (Left (l_down - h_down) h)

gg (Erase l) = cast l

move_down :: (Typeable l_down, Typeable h_down, Typeable l, Data h,  
Typeable r, Typeable up)
 = Zipper (Up (l, h, r) up) - Maybe (Zipper (Up  
(l_down, h_down, h) (Up (l, h, r) up)))

move_down z@(Zipper h c)
  = case gg (ff z) of
# Just (LeftCons l' h_down)
- Just (Zipper h_down (Cont l' RightNull c))
  Nothing - Nothing

instance Typeable Top where
typeOf _ = mkTyConApp (mkTyCon Top) []

instance Typeable2 Left where
typeOf2 _ = mkTyConApp (mkTyCon Left) []

instance Typeable2 Up where
typeOf2 _ = mkTyConApp (mkTyCon Up) []

erased_left_cons :: (Typeable b)
= Erase Left (b - a) - b - Erase Left a
erased_left_cons (Erase c) b = Erase (LeftCons c b)

erased_left_unit :: a - Erase Left a
erased_left_unit a = Erase (LeftUnit a)
**

Compiling it with GHC 6.10.4 yelds the error:


***
GADT pattern match in non-rigid context for `LeftCons'
  Solution: add a type signature
In the pattern: LeftCons l' h_down[marked with #  
in the code]


***

The suggestion is quite clear :D (in fact, I think this compiler  
suggestion is the result of previous interactions in this mailing list)


The thing is that, in order to add a type signature to the suggested  
pattern, I believe I have to use the type variables in the signature  
of function 'move_down' (which I don't think is possible);


Can anyone help me with this? I believe this code has compiled before,  
on previous GHC versions...


Thank you very much,
João


--
João Paulo Fernandes
Universidade do Minho
www.di.uminho.pt/~jpaulo



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