module Fixme () where data F a b c = F (Int -> b -> c) {- data F a b c = F (x::(Int -> b -> c)) @-} {-@ bar :: F {v:Int| v >= 0} b c @-} bar :: F Int b c bar = undefined {-@ foo :: F {v:Int| v >= 0} b c -> Int @-} foo :: F Int b c -> Int foo = undefined {-@ hoo :: Int @-} hoo = foo bar