HaRe-0.6: tools/interp/HaskellWorkshop/Ideas.txt
Haskell is complex,
No one has ever given a precise semantics for all the little
corners such as, nested patterns, lazy pattern matching, guards etc.
Why in Haskell?
common vocabulary
easier for Haskell programmers to understand
executable
Part of the programatica project (worlds slowest haskell implementation)
unlike the haskell report gives a finer grain definition
Standard against which to compare other implementations
Introduce examples which illustrate the subtleties
Format
0) Whats wrong with other descriptions
patterns are always simple
distinction between case, let, lambda, lazy patterns
Sematics as translation introduces Variable introduction problem
Guards are subtle, they may force unnecesary evaluation
1) Why a Monadic description?
what monad?
2) Call by name vs lazy description
3) The meaning of patterns
Different uses of patterns
case, let, lambda
Lazy patterns
nested patterns
4) Guards
5) Other things
Strict Data constructors
newtypes and lifting
6) Type classes,
suggestion library introduction transform
7)