summaryrefslogtreecommitdiff
path: root/testsuite/tests/typecheck/should_run/tcrun006.hs
blob: f3d0e13cef02c5a2b755a2e8f46689271eef7eb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{-# LANGUAGE DatatypeContexts #-}
-- !!! Selectors for data and newtypes with contexts

-- This program, reported in Aug'00 by Jose Emilio Labra Gayo
-- gave rise to a Lint error because the selector 'newout' below
-- was given the type
--	Eq f => NewT f -> f
-- but lacked a dictionary argument in its body.

module Main where

newtype (Eq f) => NewT  f = NewIn  { newout  :: f } 
data    (Eq f) => DataT f = DataIn { dataout :: f } 

main = print (newout (NewIn "ok new") ++ dataout (DataIn " ok data"))