strictness of interpreted haskell implementations

Geraint Jones Geraint.Jones at wolfson.ox.ac.uk
Wed May 6 10:33:26 EDT 2009


Given a declaration

	data S = S { a :: Int, b :: ! Int }

I expect 

	a (S { a = 0, b = undefined })

to force the undefined in the b field of the S (and ghci agrees with me).
However:-

  __   __ __  __  ____   ___      _________________________________________
  ||   || ||  || ||  || ||__      Hugs 98: Based on the Haskell 98 standard
  ||___|| ||__|| ||__||  __||     Copyright (c) 1994-2005
  ||---||         ___||           World Wide Web: http://haskell.org/hugs
  ||   ||                         Bugs: http://hackage.haskell.org/trac/hugs
  ||   || Version: September 2006 _________________________________________
  
  Haskell 98 mode: Restart with command line option -98 to enable extensions
  
  Type :? for help
  Main> a (S { a = 0, b = 1 })
  0
  Main> a (S { a = 0, b = undefined })
  0
  Main> 

Is this a known feature?


More information about the Hugs-Bugs mailing list