Suppose I have a labelled type 'A' defined like the following one:

module Test (
 A (b)
)

where

data A = A
 { b :: Int,
   c :: Int
 }

I am exporting only 'A(b)', so why the following code "can see" 'c' ?

module Main where

import Test

main :: IO ()
main = print (c (A {c=3,b=2}))

PROMPT> 3

If Test exports only 'A', not 'A(b)', the I get the expected compilation
problem:

ERROR "label.hs" (line 6): "c" is not a selector function/field name

Am I missing something obvious here?

Thanks,
-- Andre

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to