Changes between Version 7 and Version 8 of ExplicitTypeApplication


Ignore:
Timestamp:
Dec 15, 2011 10:22:05 AM (2 years ago)
Author:
dreixel
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ExplicitTypeApplication

    v7 v8  
    2828}}} 
    2929 
    30 The idea is to provide more access to the explicit types in the core language 
     30The idea is to provide access to the explicit types in the core language 
    3131(system [http://dreixel.net/research/pdf/ghp.pdf FC-pro]) 
    3232directly from the source language syntax. 
     
    3434 
    3535== How many arguments, and their order == 
    36 When we have multiple variables, we can use as many as we need, and also use 
    37 underscores: 
     36When we have multiple variables we can pattern match on as many as we need, 
     37and also use underscores: 
    3838{{{ 
    3939f (C @_ @b x ) = ... 
     
    6464}}} 
    6565In this case it is really ambiguous what the pattern means. For these 
    66 cases we have the following workaround: 
     66cases we suggest the following workaround: 
    6767{{{ 
    6868f :: Int -> forall a. a 
     
    7373 
    7474=== Syntax for promoted datatypes === 
    75 It also introduces the need to disambiguate between a datatype and its promoted 
    76 kind. Consider the example: 
     75With `-XPolyKinds` on, we can also match/apply kind arguments. This introduces the 
     76need to disambiguate between a datatype and the promoted kind it introduces. 
     77Consider the example: 
    7778{{{ 
    7879data X = X 
     
    8485or a type (since we use |@| both for kind and type application), we need to be 
    8586able to disambiguate between datatypes and their corresponding promoted kinds. 
     87At the moment this ambiguity does not arise, so we do not allow prefixing 
     88kinds with `'`, but it seems natural to lift this restriction, and use the 
     89same notation as for promoted data constructors. 
    8690 
    8791== More examples ==