ghc-8.0.0.20160421: The GHC API

Safe HaskellNone
LanguageHaskell2010

DsUtils

Description

Utility functions for constructing Core syntax, principally for desugaring

Synopsis

Documentation

data CanItFail Source #

Constructors

CanFail 
CantFail 

data CaseAlt a Source #

Constructors

MkCaseAlt 

mkSelectorBinds Source #

Arguments

:: [[Tickish Id]]

ticks to add, possibly

-> LPat Id

The pattern

-> CoreExpr

Expression to which the pattern is bound

-> DsM (Id, [(Id, CoreExpr)])

Id the rhs is bound to, for desugaring strict binds (see Note [Desugar Strict binds] in DsBinds) and all the desugared binds

decideBangHood Source #

Arguments

:: DynFlags 
-> LPat id

Original pattern

-> LPat id 

Remove any bang from a pattern and say if it is a strict bind, also make irrefutable patterns ordinary patterns if -XStrict.

Examples: ~pat => False, pat -- when -XStrict -- even if pat = ~pat' ~pat => False, ~pat -- without -XStrict ~(~pat) => False, ~pat -- when -XStrict pat => True, pat -- when -XStrict !pat => True, pat -- always