5.10.14

 

Errata, please

This is a space where you can leave comments describing errata in any of my published papers. Please include bibliographic details of the paper, and a link to where the paper appears on my web page if you can. Thank you to Dave Della Costa for volunteering the first entry and inspiring the creation of this post, and to all who utilise this space to record and correct my errors for posterity.

Labels: , ,


Comments:
In the downloads for the paper "How to make ad-hoc
polymorphism less ad hoc" available here:

http://homepages.inf.ed.ac.uk/wadler/topics/type-classes.html

...there seems to be a typo on page 7, figure 4 ("Translation of
equality")--I believe

eqDChar :: EqD Int

should read

eqDChar :: EqD Char

Thanks!
 
Marriage of Monads and Effects

homepages.inf.ed.ac.uk/wadler/papers/effectstocl/effectstocl.pdf

In the conclusions section:


Here one might define T σ τ = S_σ → X ×S^σ where S_σ is a store restricted to contain only locations in regions ρ such that read(ρ) or init(ρ) is in σ, and S^σ is a store restricted to contain only locations in regions ρ such that init(ρ) or write(ρ) is in σ.


S^σ (the returned store) is incorrectly defined, and doesn't in general form a monad (in the expected way). Think how you would define the return for this monad!.

The initialization complicates matters, but assuming σ does not contain init(ρ), S^σ should be defined along the following lines:

S^σ = S1(σ)*(1+S2(σ))

where S1(σ) is the store restricted to contain only locations in regions ρ such thar both read(ρ) and write(ρ) are in σ,
and S2(σ) is store restricted to contain only locations in regions ρ such thar only write(ρ) is in σ,
 
Monads for functional programming

http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf

In the section 3 where the paper explains the Monad Laws (3) there is an example of the evaluator code as addition rather than division but it's incorrectly shown as division again.

"eval (Add t u) = eval t ⋆ λa. eval u ⋆ λb. unit (a ÷ b)"

In part 4r there's a typo "can be use to manipulate extenal state" (instead of external state).


 
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?