On Thu, Apr 28, 2011 at 1:18 PM, Dan Doel <dan.doel@gmail.com> wrote:
(Sorry if you get this twice, Ertugrul; and if I reply to top. I'm
stuck with the gmail interface and I'm not used to it.)

On Thu, Apr 28, 2011 at 11:27 AM, Ertugrul Soeylemez <es@ertes.de> wrote:
> I don't see any problem with this.  Although I usually have a bottom-up
> approach, so I don't do this too often, it doesn't hurt, when I have to.

I do. It's low tech and inconvenient.

Whenever I program in Haskell, I miss Agda's editing features, where I
can write:

   foo : Signature
   foo x y z = ?

Then compile the file. The ? stands in for a term of any type, and
becomes a 'hole' in my code. The editing environment will then tell me
what type of term I have to fill into the hole, and give me
information on what is available in the scope. Then I can write:


You can simulate that with a type class.  The "no instance" error substitutes for the "term".

class Hole obj where hole :: obj

foo :: Blah
foo x y z = hole

"No instance for type Blah"

Presumably, you wouldn't want to make instances.  I use a similar construct for monic and epic functions, since the natural ones tend to be unique enough.