packages feed

liquidhaskell-0.8.0.2: tests/pos/AdtPeano0.hs

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

module Peano where

-- | The code currently works if we add the below, but thats icky.
--   First, lets get this file to work _without_ the below.

{- data Influx = Silly Int @-}

data Influx = Silly Int

{-@ reflect thing @-}
thing :: Influx -> Int
thing (Silly a) = a + 1

{-@ reflect bling @-}
bling :: Influx -> Int
bling (Silly b) = b

{-@ test :: m:Influx -> { thing m = 1 + bling m} @-}
test :: Influx -> (Int, Int)
test m = (thing m, bling m)