On 2006-01-31, Cale Gibbard <cgibbard <at> gmail.com> wrote:
> The point about monads being a design pattern I actually wouldn't take
> too much exception to, except for the fact that I don't really like
> the term "design pattern" in the first place. :) Too often, the things
> people call design patterns are just ordinary functions or general
> interfaces in a more expressive programming language.
Right. I'd call haskell's typeclasses excellent language support for
formalizing and truly taking advantage of design patterns where
appropriate.
--
--
Aaron Denney
-><-

This is the latest meeting in a series that started 1992, the last
conference was in December 2004 in Paris.

The topic of the meeting is formal reasoning and computer programming
based on Type Theory : languages and computerised tools for reasoning,
and applications in several domains such as analysis of programming
languages, certified software, formalisation of mathematics and
mathematics education.

TYPES 2006 is colocated with TFP 2006 (Trends in Functional
Programming) and we plan to hold a joint session on Dependently Typed
Programming.

The conference takes place at Jubilee campus of the University of
Nottingham, on-site accomodation will be available together with the
registration.

Registration is open now. You will be able to submit
your talk and abstract together with your registration. We will try to
accomodate all talks which fit into the scope of the TYPES
project. There will also be invited lectures from Bart Jacobs, Simon Peyton Jones (joint with TFP) and Hongwei Xi.

Internships at Microsoft Research, Cambridge

Internships are available at Microsoft Research, Cambridge, for this
summer. More information is available here:
http://research.microsoft.com/aboutmsr/jobs/internships/
Internships are usually for graduate students (PhD or Masters) and last
12 weeks (although longer projects are also possible). Furthermore,
although there is a deadline of *28 Feb* for the main batch of summer
internships, MSR is now taking interns year-round, a non-summer
internship may even be easier to arrange (because it misses the Big
Rush).
The reason for this mail is to highlight the fact that Simon & I would
particularly like to encourage applicants interested in working on
Haskell-related projects. We have a number of projects in mind, but
feel free to suggest your own:
- Parallel garbage collection: to complement GHC's new support
for SMP parallelism, replacing single-threaded garbage
collection with parallel GC is a high priority goal, with
plenty of interesting research too.
- Parallel Haskell applications: investigate using SMP/multicore
parallelism for real, either implicit parallelism or using
concurrency & STM, by tackling some applications.
- Haskell debugging in GHCi: we have some ideas for building a
debugger into GHCi, there are some research angles here too.
- GHC as a library: we have made a start on providing a library
interface to GHC, but there is much left to do. Re-targetting
Haddock on top of GHC would make a good project, for example.
- C-- code generation: we have a project student working on
C-- code gen, but there's a lot to do here. The ultimate goal
is to divide the code generator into two: first generate C--
and then CPS-convert it into C-- with only tail calls, suitable
for generating code using the existing paths (native code and
via-C) too.
Let us know by email if you apply. Good luck!
Simon Peyton Jones and Simon Marlow

Research position in constraints and CHR

Please pass this message on to whoever you think may be interested.
DOCTORAL/POSTDOCTORAL RESEARCH POSITION IN CONSTRAINT SOLVING AND PROGRAMMING
University of Ulm, Germany
A research position is available for Ph.D. students or postdocs at the Faculty
of Computer Science, University of Ulm, Department of Software Engineering and
Compiler Construction in the area of Constraint Handling Rules (CHR).
The successful applicant will be responsible for a research project funded by
the German Research Foundation DFG. Its topic is the specification, generation,
implementation and analysis of rule-based algorithms for solving of global
constraints in CHR. The position thus requires knowledge and interest in one or
more of the aforementioned areas.
At least a master or equivalent in computer science or strongly related area is
required. The initial appointment will be for two years, beginning as soon as
possible, with a possible renewal for another two years depending on the
evaluation of the research foundation.
Gross salary is 56.400 Euro a year according to assistant position BAT IIa. It
includes health and social insurance. Additional money for conference travel and
visit of the advanced summer school on global constraints will be provided.
Ulm is a pleasant city of 150.000 on the Danube, with nearby rocks for free-
climbing, close to Stuttgart, Munich, the Alps, and Lake Konstanz. Every day
life requires a basic command of German.
Prospective applicants should email their resume with three references, and link
to homepage and publications if available, to our secretary Claudia Hammer at
hammer <at> informatik.uni-ulm.de
by February 28th, 2006,
or until the position is filled.
Prof. Thom Fruehwirth
c/o Claudia Hammer
University of Ulm
Faculty of Computer Science
Department PM
D-89069 Ulm, Germany
Email: hammer <at> informatik.uni-ulm.de
WWW: http://www.informatik.uni-ulm.de/pm/mitarbeiter/fruehwirth/
CHR: http://www.cs.kuleuven.be/~dtai/projects/CHR/
The University of Ulm aims to increase the representation of women in research
and teaching and therefore expressly encourages female scientists to apply.
Disabled applicants with relevant qualifications will be given priority.

Type synonyms in the instance head

Hi all
In this url
http://www.haskell.org/ghc/docs/latest/html/users_guide/type-extensions.html#id3144979
one can read about "Type synonyms in the instance head". A quote:
"You cannot, for example, write:
type P a = [[a]]
instance Monad P where ...
This design decision is independent of all the others, and easily
reversed, but it makes sense to me."
It does not make sense to me! Could anybody explain why this makes
sense?
Below, I will try to explain why it does not make sense to me.
If I have:
data LongAndUglyName a = ...
type ShortAndTellingName a = LongAndUglyName a
It seems to make sensible to:
instance Foo ShortAndTellingName
Also it is called a type _synonym_ and the type synonym and what it is
synonym for, should therefore be interchangeable.
This restriction do not only apply to instance heads, but also to
contexts, as in:
instance (Foo LongAndUgleName) => class something ...
Here again LongAndUglyName cannot be replaced by ShortAndTellingName.
This can be annoying if you have a lot of these instance declarations.
Also what the type synonym is synonym for, may not have any name and
thus properly not be telling at all, as in:
type TellingName a = \a -> String
/Mads Lindstrøm

Re: Type synonyms in the instance head

Wolfgang Jeltsch <wolfgang <at> jeltsch.net>
2006-02-02 22:11:23 GMT

Am Donnerstag, 2. Februar 2006 21:48 schrieb Mads Lindstrøm:
> [...]
> Also what the type synonym is synonym for, may not have any name and
> thus properly not be telling at all, as in:
>
> type TellingName a = \a -> String
What is \a -> String?
> /Mads Lindstrøm
Best wishes,
Wolfgang