#include "HsVersions.h"
-import HsSyn ( HsDecl(..), TyClDecl(..), HsTupCon(..) )
+import HsSyn ( TyClDecl(..), HsTupCon(..) )
import TcMonad
import TcMonoType ( tcHsType )
-- NB: all the tyars in interface files are kinded,
import TcEnv ( TcEnv, RecTcEnv, tcExtendTyVarEnv,
tcExtendGlobalValEnv, tcSetEnv,
- tcLookupGlobal_maybe, tcLookupRecId, tcEnvIds
+ tcLookupGlobal_maybe, tcLookupRecId_maybe
)
-import RnHsSyn ( RenamedHsDecl )
+import RnHsSyn ( RenamedTyClDecl )
import HsCore
import Literal ( Literal(..) )
import CoreSyn
\begin{code}
tcInterfaceSigs :: RecTcEnv -- Envt to use when checking unfoldings
- -> [RenamedHsDecl] -- Ignore non-sig-decls in these decls
+ -> [RenamedTyClDecl] -- Ignore non-sig-decls in these decls
-> TcM [Id]
tcInterfaceSigs unf_env decls
= listTc [ do_one name ty id_infos src_loc
- | TyClD (IfaceSig name ty id_infos src_loc) <- decls]
+ | IfaceSig name ty id_infos src_loc <- decls]
where
in_scope_vars = [] -- I think this will be OK
tcAddErrCtxt (ifaceSigCtxt name) $
tcHsType ty `thenTc` \ sigma_ty ->
tcIdInfo unf_env in_scope_vars name
- sigma_ty vanillaIdInfo id_infos `thenTc` \ id_info ->
+ sigma_ty id_infos `thenTc` \ id_info ->
returnTc (mkId name sigma_ty id_info)
\end{code}
\begin{code}
-tcIdInfo unf_env in_scope_vars name ty info info_ins
+tcIdInfo unf_env in_scope_vars name ty info_ins
= foldlTc tcPrag constantIdInfo info_ins
where
tcPrag info (HsArity arity) = returnTc (info `setArityInfo` arity)
= uniqSMToTcM (mkWrapper ty arity demands res_bot cpr_info) `thenNF_Tc` \ wrap_fn ->
let
-- Watch out! We can't pull on unf_env too eagerly!
- info' = case tcLookupRecId unf_env worker_name of
+ info' = case tcLookupRecId_maybe unf_env worker_name of
Just worker_id -> info `setUnfoldingInfo` mkTopUnfolding (wrap_fn worker_id)
`setWorkerInfo` HasWorker worker_id arity