{-# LANGUAGE LiberalTypeSynonyms #-}

-- The type sig for 'test' is illegal in H98 because of the
-- partial application of the type sig.
-- But with LiberalTypeSynonyms it should be OK because when
-- you expand the type synonyms it's just Int->Int
--      c.f should_fail/tcfail107.hs

module ShouldCompile where

type Thing m = m ()

type Const a b = a

test :: Thing (Const Int) -> Thing (Const Int)
test = test

