[Haskell-cafe] module export question
Luke Palmer
lrpalmer at gmail.com
Tue Dec 1 17:18:44 EST 2009
On Tue, Dec 1, 2009 at 3:11 PM, Sean McLaughlin <seanmcl at gmail.com> wrote:
> Say I have the following module:
>
> ----------------------------------------
> module A
> ( T(T)
> , t
> , val
> )
> where
>
> data T = T { t :: Int }
>
> val :: T
> val = T 7
> ----------------------------------------
>
>
> When I use A with the following imports, I don't expect this to work,
> but it does:
>
> import qualified A
> import A(T(..))
>
> main = putStrLn $ show $ t A.val
>
> The problem is that I explicitly didn't export 't' as an element of T
> (by not writing T(..)).
> Am I just misunderstanding how exports work? I couldn't figure out
> what the correct
> behavior should be by looking at the 98 report.
Oh interesting. What a crazy corner case. I also feel like your
program shouldn't be valid. Maybe it's a bug?
More information about the Haskell-Cafe
mailing list