
Hi all, If I have the following data type: data Expr = Num Int | Expr :+: Expr | Expr :-: Expr Haddock handles the infix constructors, and generates a very nice output (html in this case) However when I try to reference to one of the infix constructors in the markup of other functions it fails to hyperlink. -- | If the input is 'Num' does magic, if it is ':+:' does even more magic! someFunc :: Expr -> Expr In the output of this markup, the 'Num' is hyperlinked but the ':+:' is not. Is there a different syntax for infix constructors (and for infix functions presumably) or does haddock simple lack this feature? Best, -- Ozgur Akgun

Am Montag 26 April 2010 18:15:02 schrieb Ozgur Akgun:
Hi all,
If I have the following data type:
data Expr = Num Int | Expr :+: Expr | Expr :-: Expr
Haddock handles the infix constructors, and generates a very nice output (html in this case) However when I try to reference to one of the infix constructors in the markup of other functions it fails to hyperlink.
-- | If the input is 'Num' does magic, if it is ':+:' does even more magic! someFunc :: Expr -> Expr
In the output of this markup, the 'Num' is hyperlinked but the ':+:' is not. Is there a different syntax for infix constructors (and for infix functions presumably) or does haddock simple lack this feature?
Infix functions work fine (try referring to e.g. '&&' in the haddock comment), but infix constructors apparently not.
Best,

2010/4/26 Daniel Fischer
Am Montag 26 April 2010 18:15:02 schrieb Ozgur Akgun:
Hi all,
If I have the following data type:
data Expr = Num Int | Expr :+: Expr | Expr :-: Expr
Haddock handles the infix constructors, and generates a very nice output (html in this case) However when I try to reference to one of the infix constructors in the markup of other functions it fails to hyperlink.
-- | If the input is 'Num' does magic, if it is ':+:' does even more magic! someFunc :: Expr -> Expr
In the output of this markup, the 'Num' is hyperlinked but the ':+:' is not. Is there a different syntax for infix constructors (and for infix functions presumably) or does haddock simple lack this feature?
Infix functions work fine (try referring to e.g. '&&' in the haddock comment), but infix constructors apparently not.
Yes, I actually fixed this a few weeks ago in Haddock's lexer. Colon was just not included in the character set for identifiers. David

So, how can we make use of this fix?
On 26 April 2010 19:47, David Waern
2010/4/26 Daniel Fischer
: Am Montag 26 April 2010 18:15:02 schrieb Ozgur Akgun:
Hi all,
If I have the following data type:
data Expr = Num Int | Expr :+: Expr | Expr :-: Expr
Haddock handles the infix constructors, and generates a very nice output (html in this case) However when I try to reference to one of the infix constructors in the markup of other functions it fails to hyperlink.
-- | If the input is 'Num' does magic, if it is ':+:' does even more magic! someFunc :: Expr -> Expr
In the output of this markup, the 'Num' is hyperlinked but the ':+:' is not. Is there a different syntax for infix constructors (and for infix functions presumably) or does haddock simple lack this feature?
Infix functions work fine (try referring to e.g. '&&' in the haddock comment), but infix constructors apparently not.
Yes, I actually fixed this a few weeks ago in Haddock's lexer. Colon was just not included in the character set for identifiers.
David _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
-- Ozgur Akgun

2010/4/26 Daniel Fischer
Am Montag 26 April 2010 22:18:53 schrieb Daniel Fischer:
Am Montag 26 April 2010 22:05:48 schrieb Ozgur Akgun:
So, how can we make use of this fix?
My guess:
$ cabal install haddock-2.7.2
No, it's not yet in there :(
Yes, I should make a new release. In the meantime, you could try darcs get http://code.haskell.org/haddock David

On 27 April 2010 02:15, Ozgur Akgun
data Expr = Num Int | Expr :+: Expr | Expr :-: Expr
[snip]
-- | If the input is 'Num' does magic, if it is ':+:' does even more magic! someFunc :: Expr -> Expr
In the output of this markup, the 'Num' is hyperlinked but the ':+:' is not.
I would hazard a guess that the Num hyperlink points to the Num typeclass in the Prelude rather than your Num constructor. As for your infix constructor, I have no idea. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com

I shouldn't have choosen Num for the constructor name, it led to confusions
apparently.
You can replace tha Num with anything you want, doesn't change the
situation.
I mean, it's not the problematic part.
Is there any news about the fix in the lexer? When can we use it?
On 27 April 2010 00:52, Ivan Miljenovic
On 27 April 2010 02:15, Ozgur Akgun
wrote: data Expr = Num Int | Expr :+: Expr | Expr :-: Expr
[snip]
-- | If the input is 'Num' does magic, if it is ':+:' does even more magic! someFunc :: Expr -> Expr
In the output of this markup, the 'Num' is hyperlinked but the ':+:' is not.
I would hazard a guess that the Num hyperlink points to the Num typeclass in the Prelude rather than your Num constructor. As for your infix constructor, I have no idea.
-- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com
-- Ozgur Akgun
participants (4)
-
Daniel Fischer
-
David Waern
-
Ivan Miljenovic
-
Ozgur Akgun