[Haskell-cafe] EduHaskell

Jurriaan Hage J.Hage at uu.nl
Mon Sep 25 09:35:48 UTC 2017


Hi Martin,

Helium does support overloading, depending on your choice of flags.
If you turn it on,  it provides a number of built-in type classes, like Eq and Old. It is just that you cannot define
your own classes and instances (work is on the way in this respect). All instances are derived, as you ask.

I will be working on extending Helium this (course) year in various directions to make it 
* suitable as a study object for a course on compiler construction
and
* adding code generation and type checking for type classes
* add import/export facilities (these are currently very straightforward)

Helium can be easily installed from Cabal for you to check out and play with. See the website 
at http://foswiki.cs.uu.nl/foswiki/Helium/WebHome

As to your general question on EduHaskell, I’d be interested in such a group, and would like Helium to be that teaching-oriented
Haskell compiler.

best,
Jur

> On 24Sep, 2017, at 03:02, erwig <erwig at oregonstate.edu> wrote:
> 
> Dear Haskell aficionados,
> 
> We will be using Haskell in an introductory course to computer science for college freshmen. From my past experience in using Haskell for students, the biggest hurdle and source of frustration is the type checker, or more precisely, the error messages generated. I see three major kinds of errors that get in the way of a smoother programming experience:
> 
> * Errors resulting from overloading
> * Errors due to undefined type class instances (specifically, Eq and Show)
> * Errors in the context of parametric polymorphism
> 
> While these problems are not unsurmountable, having to talk about these errors is a distraction from the major goal of explaining basics of (functional) programming. It would be great to have a Haskell compiler that offers the following features (and maybe others):
> 
> * Type classes and overloading could be turned off
> * Eq and Show (and maybe Ord) instances would be automatically defined for any data type definition (when type classes are enabled)
> 
> My questions are: 
> 
> (1) Does there exist a good solution to this problem already?
> 
> Should one use Helium? I haven't checked lately, but it used to avoid type classes. This might have the disadvantage of having to switch to GHC in case one wants to use overloading. (I have used Helium in the past, and while I admire the effort, I am not sure it's the best option.)
> 
> Are there versions of the Prelude available that accomplish some of this?
> 
> (2) Are there other Haskellers out there who also want a simpler, more educationally suited version of GHCi?
> 
> (3) If the answer to (1) is NO and to (2) is YES, is there any interest in forming a group for creating something like "EduHaskell"?
> 
> 
> I'd be grateful for any comments or suggestions!
> 
> 
> Thanks,
> Martin
> 
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.



More information about the Haskell-Cafe mailing list