Another correction... Brian Hulley wrote: > data Col1 a = One a > data Col2 a = One a | Two a > > useOne :: ( //One col a) => col -> a > useOne (One x) = x should be useOne :: (//One a col) => col -> a