packages feed

liquidhaskell-0.8.2.3: tests/pos/ExactGADT8a.hs

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

{-# LANGUAGE ExistentialQuantification, KindSignatures, TypeFamilies, GADTs #-}

module ExactGADT8a where

{- data EntityField typ where
            BlobXVal :: EntityField {v:_ | True }
          | BlobYVal :: EntityField {v:_ | True }
 @-}
data EntityField typ where
  BlobXVal :: EntityField Int
  BlobYVal :: EntityField Int

  -- TH-GEN
  -- data EntityField Blob typ
  --  = typ ~ Int => BlobXVal |
  --    typ ~ Int => BlobYVal

{-@ reflect evalQBlob @-}
evalQBlob :: EntityField a -> Bool 
evalQBlob BlobXVal = True 
evalQBlob BlobYVal = False