
31 Dec
2007
31 Dec
'07
5:56 a.m.
On 12/30/07, Cristian Baboi
Thank you.
data Something = This | S Something
ppp :: Something -> String
ppp This = "" ppp (S x) = 'S':(ppp x)
How can I prevent one to pass 'let x = S x in x' to ppp ?
{-# LANGUAGE GADTs, EmptyDataDecls #-} data Z data S a data Something a where This :: Something Z S :: Something a -> Something (S a) ppp :: Something a -> String ppp This = "" ppp (S x) = 'S' : ppp x