
Hi, I'm looking to get started developing Haskell under OS X, and I'm wondering what sort of IDE/implementation combinations people find productive. I've got haskell mode working with Emacs and ghc, this works okay, though the mode seems a little rough-edged, and the indentation appears slightly wonky at times. I didn't immediately stumble across any native OS X IDEs. What do OS X-based Hasellers tend to use? Thanks, Patrick

On 10/18/05, Patrick Collison
I'm looking to get started developing Haskell under OS X, and I'm wondering what sort of IDE/implementation combinations people find productive. I've got haskell mode working with Emacs and ghc, this works okay, though the mode seems a little rough-edged, and the indentation appears slightly wonky at times. I didn't immediately stumble across any native OS X IDEs.
I'm a Haskell beginner so I'm sure I don't know everything that's available. Development is underway on an IDE written in Haskell. I bet it'll run on OS X someday, if it doesn't already. http://haskell.org/hawiki/hIDE
What do OS X-based Hasellers tend to use?
I think I'm using the latest version of the Haskell mode. I know I'm using the 22.0.50.1 version of Carbon Emacs. http://www.emacswiki.org/cgi-bin/wiki/CarbonEmacsPackage I use vim sometimes too, when I don't want/need ghci integration. Steve -- How wonderful it is that nobody need wait a single moment before starting to improve the world. -- Anne Frank Paradise is exactly where you are right now...only much, much better. -- Laurie Anderson

Try Eclipse + eclipsefp, they work great on OS X. http://eclipsefp.sourceforge.net/ I am currently developing a native IDE for OS X, it will support haskell and C. jake

I don't think it's so much bugs as it's funky indentation :-). For example... data TableInfo = TableInfo { avgPot :: Double, I would have preferred not to offset the fields from the brace but I don't know how to change this and maybe I'm going against standard Haskell style here. case findprop attr props of Just x -> x seems like a lot of space is wasted by hanging the Just from the off. I have to resort fo this now case findprop attr props of Just x -> x Try this to see that you cannot indent "something here" at the same level as let. main = do let foo = 10 bar = 20 something here I'm sure I can come up with a few more. Thanks, Joel On Oct 21, 2005, at 8:08 AM, Stefan Monnier wrote:
I've got haskell mode working with Emacs and ghc, this works okay, though the mode seems a little rough-edged, and the indentation appears slightly wonky at times.
Bug reports welcome,

I don't think it's so much bugs as it's funky indentation :-). For example...
data TableInfo = TableInfo { avgPot :: Double,
I would have preferred not to offset the fields from the brace but I don't know how to change this and maybe I'm going against standard Haskell style here.
You mean you'd like data TableInfo = TableInfo { avgPot :: Double, ? That'd look odd to me, but to each his own. I don't know what's "standard Haskell style" here, but since it'd look odd to me, I guess it's indeed not very standard. In such a case I wouldn't consider it a bug (I do want the indentation code to allow the use of various styles, but only those styles that are "standard". I think variety in indentation style is detrimental to the readability of a language).
case findprop attr props of Just x -> x
seems like a lot of space is wasted by hanging the Just from the of.
Indeed. I've added this case to indent.hs. Hopefully I'll get to fix it before the next release. Note that the second choice offered is case findprop attr props of Just x -> x which is much better. I'd personally prefer case findprop attr props of Just x -> x but I haven't coded it yet.
Try this to see that you cannot indent "something here" at the same level as let.
main = do let foo = 10 bar = 20 something here
Yes, this one is a known bug, and I haven't tried fixing it yet. Stefan

On Oct 21, 2005, at 4:22 PM, Stefan Monnier wrote:
You mean you'd like
data TableInfo = TableInfo { avgPot :: Double,
No, I would actually like to offset avgPot 4 spaces from TableInfo.
which is much better. I'd personally prefer
case findprop attr props of Just x -> x
but I haven't coded it yet.
Yes, that's what I would like to have too. I'm no stranger to Lisp but haven't spent the time to figure out how to do the two cases above yet. Maybe you could point me in the right direction. Thanks, Joel -- http://wagerlabs.com/

On 10/21/05, Joel Reymont
On Oct 21, 2005, at 4:22 PM, Stefan Monnier wrote:
You mean you'd like
data TableInfo = TableInfo { avgPot :: Double,
No, I would actually like to offset avgPot 4 spaces from TableInfo.
Can I throw a vote in for handling data T = T { granularity :: (Int, Int, Int, Int) , items :: Map (Int, Int, Int, Int) [Item] } correctly? That (and case statements) are the only things that really still bother me about haskell-mode. /g

Can I throw a vote in for handling
data T = T { granularity :: (Int, Int, Int, Int) , items :: Map (Int, Int, Int, Int) [Item] }
correctly? That (and case statements) are the only things that really still bother me about haskell-mode.
AFAIK this is handled correctly in the CVS version of haskell-mode. Stefan

You mean you'd like
data TableInfo = TableInfo { avgPot :: Double,
No, I would actually like to offset avgPot 4 spaces from TableInfo.
In that case I'm with you. It's on my wish list as well.
which is much better. I'd personally prefer
case findprop attr props of Just x -> x
but I haven't coded it yet.
Yes, that's what I would like to have too. I'm no stranger to Lisp but haven't spent the time to figure out how to do the two cases above yet. Maybe you could point me in the right direction.
Not really. If I knew how/where to start I'd have done it already. I suspect it'll require some refactoring. Luckily this same refactoring should hopefully allow handling the first example above as well. Stefan
participants (6)
-
J. Garrett Morris
-
Jake Luck
-
Joel Reymont
-
Patrick Collison
-
Stefan Monnier
-
Steven Elkins