data vs. newtype, abstractly

John Meacham john@repetae.net
Sun, 9 Mar 2003 09:20:13 -0800


my guess is no too. An informal argument to that: imagine the
datatype is abstract and no functions which act on it are exported
.call it 'Type'. since there are no non-bottom values of this type that
are exported, the only way to create them is with bottom as in:

(undefined :: Type) (or an equivalant)

which is equivalant for a newtype (N undefined :: Type) 
and for a data (undefined :: Type)

note that there is no way to create the (D undefined) which is what lets
you observe the difference. therefore you cannot tell the difference...
Just my line of thought which led to saying 'no', interpret it as you
will.
	John

On Sun, Mar 09, 2003 at 12:58:49PM +0100, Koen Claessen wrote:
> Hal Daume III wrote:
> 
>  | there is a difference between
>  |
>  |   (N undefined) `seq` ()
>  |
>  | and
>  |
>  |   (D undefined) `seq` ()
> 
> The question stated "without its constructor". My guess is
> "no".
> 
> /K
> 
> _______________________________________________
> Haskell mailing list
> Haskell@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell
> 

-- 
---------------------------------------------------------------------------
John Meacham - California Institute of Technology, Alum. - john@foo.net
---------------------------------------------------------------------------