Changes between Initial Version and Version 2 of Ticket #11812


Ignore:
Timestamp:
Nov 8, 2017 3:17:51 PM (2 years ago)
Author:
RyanGlScott
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #11812

    • Property Cc erikd added
  • Ticket #11812 – Description

    initial v2  
    1313type Const a b = a
    1414
    15 $( do ForallT [PlainTV n] _ _ <- [t| forall n. n |]
    16     let noBang = Bang NoSourceUnpackedness NoSourceStrictness
    17     return [ClosedTypeFamilyD
    18             (TypeFamilyHead (mkName "F1")
     15$(do ForallT [PlainTV n] _ _ <- [t| forall n. n |]
     16     let noBang = Bang NoSourceUnpackedness NoSourceStrictness
     17     return [ClosedTypeFamilyD
     18             (TypeFamilyHead (mkName "F1")
     19              [ KindedTV (mkName "a") (VarT n)
     20              , PlainTV (mkName "b") ]
     21              (KindSig (VarT n))
     22              Nothing)
     23             [TySynEqn [VarT (mkName "a"), VarT (mkName "b")]
     24                       (ConT ''Const `AppT` VarT (mkName "a")
     25                                     `AppT` (ConT (mkName "T1") `AppT` VarT (mkName "a")
     26                                                                `AppT` VarT (mkName "b")))]
     27            ,DataD
     28             []
     29             (mkName "T1")
    1930             [ KindedTV (mkName "a") (VarT n)
    20              , PlainTV (mkName "b") ]
    21              (KindSig (VarT n))
    22              Nothing)
    23             [TySynEqn [VarT (mkName "a"), VarT (mkName "b")]
    24                       (ConT ''Const `AppT` VarT (mkName "a")
    25                                     `AppT` (ConT (mkName "T1") `AppT` VarT (mkName "a")
    26                                                                `AppT` VarT (mkName "b")))]
    27            ,DataD
    28             []
    29             (mkName "T1")
    30             [ KindedTV (mkName "a") (VarT n)
    31             , PlainTV (mkName "b")
    32             , PlainTV (mkName "c")]
    33             Nothing
    34             [NormalC (mkName "K1")
    35              [(noBang, ConT ''(:~:) `AppT` VarT (mkName "c")
     31             , PlainTV (mkName "b")
     32             , PlainTV (mkName "c")]
     33             Nothing
     34             [NormalC (mkName "K1")
     35              [(noBang, ConT ''(:~:) `AppT` VarT (mkName "c")
    3636                                    `AppT` (ConT (mkName "F1") `AppT` VarT (mkName "a")
    37                                                                `AppT` VarT (mkName "b")))]]
    38             []])
     37                                                                `AppT` VarT (mkName "b")))]]
     38             []])
    3939}}}
    4040
     
    4343{{{
    4444type family F1 (a :: n_auRf) b :: n_auRf where
    45 F1 a b = Const a (T1 a b)
     45  F1 a b = Const a (T1 a b)
    4646data T1 (a :: n_auRf) b c = K1 ((:~:) c (F1 a b))
    4747}}}