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"))
|