"class []" proposal Re: [Haskell-cafe] One thought: Num to
0as ? to list?
Donald Bruce Stewart
dons at cse.unsw.edu.au
Wed Aug 23 09:11:59 EDT 2006
tomasz.zielonka:
> On Wed, Aug 23, 2006 at 01:28:57PM +0100, Malcolm Wallace wrote:
> > The lengths people will go to in making things difficult for the reader,
> > just to save a few characters is truly amazing. Remember, the code will
> > be read many more times than it is written. IMHO, the various proposed
> > sugar adds nothing helpful, and just muddies understanding.
>
> Seconded. If someone just wants to type less characters, the he/she
> can omit most of type signatures.
>
> I haven't used any IDE for Haskell (like VisualHaskell), but it would be
> nice if it could fill the missing type signatures automatically. In
> cases when monomorphism restriction kicks in, it could also present the
> type that would be inferred with MR turned off.
I use the following script from vim to infer top level type declarations
for me. I've found it particularly useful for understanding others' code:
#!/bin/sh
# input is a top level .hs decls
FILE=$*
DECL=`cat`
ID=`echo $DECL | sed 's/^\([^ ]*\).*/\1/'`
echo ":t $ID" | ghci -v0 -cpp -fglasgow-exts -w $FILE
echo $DECL
Saved to 'typeOf', you can bind it from vim with:
:map ty :.!typeOf %^M
in your .vimrc
So, from vim the following source:
f (x,y,z) a b = y + a + b
hit, 'ty' and its replaced with:
f :: forall b c a. (Num b) => (a, b, c) -> b -> b -> b
f (x,y,z) a b = y + a + b
I imagine it would be possible to bind from emacs with little effort.
-- Don
More information about the Haskell-Cafe
mailing list