[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Lifted products (strictness annotations



Did I reach the whole list?

My question concerns this:
> 
> Furthermore, it makes perfect sense to declare a new type isomorphic to
> an existing function type.  So whereas it is *not* ok to write
> 
> 	data New a b = MkNew !(a->b)		-- ! means strict
> 
> (because of previous discussion about the difficulty with strictness in function
> types), it does make perfect sense to say
> 
> 	newtype New a b = MakeNew (a->b)
> 
> In short, using a strictness "annotation" (not really an annotation anyway,
> since it changes meaning) as a way to introduce a new isomorphic type doesn't
> work for function types.
> 

I don't remember seeing about the difficulty of strictness in functions.
Could someone summarize that for me?  Incidentally, isn't the only change 
in meaning that strictness introduces is convergence/lack of convergence?

Alan Baljeu