Skip to content
Snippets Groups Projects
Commit 938f825c authored by Simon Peyton Jones's avatar Simon Peyton Jones
Browse files

[project @ 1999-07-26 15:37:41 by simonpj]

Make Type.isUnLiftedType return True for forall'd unlifted types:
e.g.	x :: forall a. Int#

I found bindings like these were getting floated to the top level.
They are pretty bogus types, mind you.  It would be better never to
construct them.

(George Russell tripped over this one.)
parent 123e3135
No related merge requests found
......@@ -835,9 +835,16 @@ isUnboxedType :: Type -> Bool
isUnboxedType ty = not (isFollowableRep (typePrimRep ty))
isUnLiftedType :: Type -> Bool
isUnLiftedType ty = case splitTyConApp_maybe ty of
Just (tc, ty_args) -> isUnLiftedTyCon tc
other -> False
-- isUnLiftedType returns True for forall'd unlifted types:
-- x :: forall a. Int#
-- I found bindings like these were getting floated to the top level.
-- They are pretty bogus types, mind you. It would be better never to
-- construct them
isUnLiftedType (ForAllTy tv ty) = isUnLiftedType ty
isUnLiftedType (NoteTy _ ty) = isUnLiftedType ty
isUnLiftedType (TyConApp tc _) = isUnLiftedTyCon tc
isUnLiftedType other = False
isUnboxedTupleType :: Type -> Bool
isUnboxedTupleType ty = case splitTyConApp_maybe ty of
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment