packages feed

liquidhaskell-0.9.10.1.2: src/Data/Tuple_LHAssumptions.hs

{-# OPTIONS_GHC -fplugin=LiquidHaskellBoot #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}
module Data.Tuple_LHAssumptions where

import Data.Tuple

{-@
assume fst :: {f:(x:(a,b) -> {v:a | v = (fst x)}) | f == fst }
assume snd :: {f:(x:(a,b) -> {v:b | v = (snd x)}) | f == snd }

measure fst :: (a, b) -> a
  fst (a, b) = a

measure snd :: (a, b) -> b
  snd (a, b) = b

qualif Fst(__v:a, __y:b): (__v = (fst __y))
qualif Snd(__v:a, __y:b): (__v = (snd __y))
@-}