packages feed

liquidhaskell-0.8.10.7: tests/classes/pos/TypeEquality00.hs

{-  see [NOTE:type-equality-hack] TODO-REBARE-EQ-REPR: GHC shifts the representation of the ~ to something new with 8.4.3 maybe?

 /Users/rjhala/research/liquidhaskell/tests/pos/T1295b.hs:10:5-29: Error: Illegal type specification for `constructor Main.PersonNums`
  
 10 |   = typ ~ [Int] => PersonNums
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  
     constructor Main.PersonNums :: forall a##xo .
                                    (~<[]> (TYPE LiftedRep) a##xo [Int]) =>
                                    (EntityFieldPerson {VV : a##xo | len VV > 0})
     Sort Error in Refinement: {VV : typ##arY | len VV > 0}
     Cannot unify typ##arY with (@(42) @(43)) in expression: len VV << ceq2 >>

  -} 

{-# LANGUAGE GADTs            #-}
{-# LANGUAGE TypeFamilies     #-}

module TypeEquality00 where

{-@ LIQUID "--exact-data-con" @-}

{-@ data EntityFieldPerson typ where                                                                                     
      PersonNums :: EntityFieldPerson {v:_ | len v > 0}                                                               
  @-}
data EntityFieldPerson typ
  = typ ~ [Int] => PersonNums