All pastes #283399 Raw Edit

Unnamed

public text v1 · immutable
#283399 ·published 2006-12-18 09:31 UTC
rendered paste body
import Control.Monad.Reader

data Record = MkRecord {foo::[Int], bar::Int}
    deriving (Show,Read)

initRec = MkRecord { foo=[1,2,3,4], bar=0}

-- This works
getFoo :: Record -> [Int]
getFoo rec = asks foo rec

getFoo2 :: Record -> [Int]
getFoo2 rec = 
    do result <- asks foo rec
       return result

getFooFirst1 rec = head $ getFoo rec

getFooFirst2 rec = let result = asks foo rec 
                   in head result

-- This does not work... why?
getFooFirst3 :: Record -> Int
getFooFirst3 rec = 
    do result <- asks foo rec
       return $ head result