Strict tuples

Wolfgang Jeltsch wolfgang at
Mon Mar 20 18:43:05 EST 2006

Am Sonntag, 19. März 2006 15:53 schrieb Bulat Ziganshin:
> Hello Manuel,
> Sunday, March 19, 2006, 5:35:12 AM, you wrote:
> MMTC> PS: IIRC Clean supports strict tuples.
> i've proposed to allow adding strict mark to any type constructors and
> type constructor parameters so that finally we can define any data
> structure that can be defined in strict languages. in particular:
> type StrictPair a b = !(,) a b
> type StrictElements a b = (,) !a !b
> type StrictBoth a b = !(,) !a !b
> type StrictFunction a b = !(->) !a !b
> strictMap :: StrictFunction a b -> ![!a] -> ![!b]
> where ![!a] is a strict list with strict elements

Strictness has to refer to attributes (the things you apply a data constructor 
to).  In you approach, strictness is connected to type arguments.  This 
causes problems.  For example, if you have

	data T a = C a a,

what would T !a mean?  Would both attributes be strict?  But how would you 
force only one attribute to be strict then?

These thinkings make me believe that assigning strictness flags to type 
arguments is just not sensible.

Best wishes,

More information about the Haskell-prime mailing list