什么是这种形式的模式匹配称为:Option{..} <- ...,例如在这里使用:
data Option = Option { cabal :: Maybe String , noStylish :: Bool }
...
main = do
Option{..} <- cmdArgs defOption
cabp <- case cabal of
Nothing -> do
...
它似乎重新定义了cabaland nostylish。在模式匹配cabal有 type之前,Option -> Maybe String但在它有 type 之后Maybe String。
这个例子来自最近上传的包cabal2ghci。