go (Var _) = True
go (Con (Literal lit) _) = not (isLitLitLit lit)
go (Con (PrimOp op) args) = okToUnfoldPrimOp op && all go args
- go (Con con args) = True -- con args are always atomic
+ go (Con con args) = all go args -- might be litlits in here
go (App fun arg) = go fun && go arg
go (Lam _ body) = go body
go (Let binds body) = and (map go (body :rhssOfBind binds))