haskell 中 (!) 的意思

譬如这里

data SourcePos  = SourcePos SourceName !Line !Column
    deriving ( Eq, Ord )

还有

data State s u = State {
      stateInput :: s,
      statePos   :: !SourcePos,
      stateUser  :: !u
    }

 查了好几个地方,但是在Library里面找不到它的确切含义。

 

我在阅读Parsec库的时候碰到的问题,谢谢解惑:)


问题补充:
不会吧,这只是一个Undecided Proposals,怎么会出现在正式的库里面呢?

抱怨一下:parsec3.0改了好多东西,跟2.1差别好大。。
问题补充:
a! You are right:)

重现看了一下,前面有这个

{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, UndecidableInstances #-}

恩,谢谢拉:)

PS:源代码排版奇怪的乱掉了。。

要找的是bang pattern么?定义和用法可以参见这里:[url=http://hackage.haskell.org/trac/haskell-prime/wiki/BangPatterns]BangPatterns[/url]