[Haskell-cafe] isWHNF :: a -> IO Bool ?
tora at zonetora.co.uk
Thu Sep 27 08:07:21 EDT 2007
Does anyone know if there is a function that tells you if a haskell
value has been forced or not?
isWHNF :: a -> IO Bool
let x = (map succ [0..]) in do
putStrLn . show (isWHNF x) -- False
putStrLn . show . head $ x
putStrLn . show (isWHNF x) -- True
putStrLn . show (isWHNF (Just undefined)) -- True
If not, would it be hard/easy/possible to implement on-top-of or using
GHC? I'm happy (if it's possible) to have a stab at implementing it
myself, so any pointers to right directions would be helpful.
I'm thinking it could be useful to allow creation of sparse-check 
like libraries without needing a separate logic encoding, or things
along those lines / in that area.
Department of Computing
Imperial College London
More information about the Haskell-Cafe