wolfgang at jeltsch.net
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.
More information about the Haskell-prime