packages feed

liquidhaskell-0.7.0.0: tests/pos/ExactFunApp.hs

{-@ LIQUID "--higherorder"     @-}
{-@ LIQUID "--exact-data-cons" @-}
{-@ LIQUID "--higherorderqs" @-}

{-# LANGUAGE IncoherentInstances   #-}
{-# LANGUAGE FlexibleContexts #-}
module ListFunctors where

bar :: Maybe (a -> a) ->  a ->  a
{-@ bar :: xy:Maybe (a -> a) -> z: a
        -> {v: a | v == from_Just xy z}
  @-}
bar xink z = from_Just xink z


{-@ measure from_Just @-}
from_Just :: Maybe a -> a
{-@ from_Just :: xs:Maybe a -> {v:a  | v == from_Just xs}@-}
from_Just (Just x) = x