16 Sep
2002
16 Sep
'02
4:07 a.m.
consider an ordinary state monad that we've seen 1000 times: newtype StateTrans s a = ST( s -> (s, a) ) instance Monad (StateTrans s) where (ST p) >>= k = ST( \s0 -> let (s1, a) = p s0 (ST q) = k a in q s1 ) return a = ST( \s -> (s, a) ) now Haskell is an applicative language in which every expression has a value. the value of the expression return 3 is unprintable. it is a newtype whose representation is a function. I need a term for the 3. that is, I need a name for the variable a above. unless someone suggests a better name or knows of a name already in the literature, I'm going to call 3 the "oblique value" of the expression return 3.