Sat Sep 10 08:44:47 EDT 2011

a -> M b vs. M a -> M b

What is this about[1]:

    A key observation of Moggi's was that values and computations
    should be assinged different types: the value type a is distinct
    from the computation type M a.  In a call-by-value language,
    function stake values into computations (as in a -> M b); in a
    call-by-name language, functions take computations into
    computations (as in M a -> M b).

[1] http://homepages.inf.ed.ac.uk/wadler/papers/essence/essence.ps.gz