Changes between Version 7 and Version 8 of ExplicitTypeApplication


Ignore:
Timestamp:
Dec 15, 2011 10:22:05 AM (4 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 ==