updated with GHC sig