liquidhaskell-0.8.10.7: tests/ple/pos/T1257.hs
-- https://github.com/ucsd-progsys/liquidhaskell/issues/1257
{-@ LIQUID "--reflection" @-}
{-@ LIQUID "--ple" @-}
module Example where
data Foo = A | B deriving (Eq)
data Bar = C | D deriving (Eq)
data Baz = E | F deriving (Eq)
-- This triggers the bug
type Alias = Bar
silly :: Foo -> Alias -> Baz
-- This renders the program safe
-- silly :: Foo -> Bar -> Baz
{-@ reflect silly @-}
silly A _ = E
silly B C = F
silly _ _ = E
{-@ test :: {silly B C = F} @-}
test = ()