markSignals use ids (id, info) =
(id, info')
where
info' = if id `elem` ids then info { sigUse = use} else info
markSignals use ids (id, info) =
(id, info')
where
info' = if id `elem` ids then info { sigUse = use} else info
flattenFunction _ (Rec _) = error "Recursive binders not supported"
flattenFunction hsfunc bind@(NonRec var expr) =
flattenFunction _ (Rec _) = error "Recursive binders not supported"
flattenFunction hsfunc bind@(NonRec var expr) =
return ([], res)
-- | Check a flattened expression to see if it is valid to use as a
-- function argument. The first argument is the original expression for
return ([], res)
-- | Check a flattened expression to see if it is valid to use as a
-- function argument. The first argument is the original expression for
-> Var.Var -- The scrutinee
-> CoreBndr -- The binder to bind the scrutinee to
-> CoreAlt -- The single alternative
-> Var.Var -- The scrutinee
-> CoreBndr -- The binder to bind the scrutinee to
-> CoreAlt -- The single alternative
-- See expandExpr
flattenSingleAltCaseExpr binds v b alt@(DataAlt datacon, bind_vars, expr) =
if not (DataCon.isTupleCon datacon)
-- See expandExpr
flattenSingleAltCaseExpr binds v b alt@(DataAlt datacon, bind_vars, expr) =
if not (DataCon.isTupleCon datacon)
-- | The state signals. The first is the state number, the second the
-- signal to assign the current state to, the last is the signal
-- that holds the new state.
-- | The state signals. The first is the state number, the second the
-- signal to assign the current state to, the last is the signal
-- that holds the new state.