@@ -16,6 +16,7 @@
16module Language.PureScript.Sugar (desugar, module S) where
16module Language.PureScript.Sugar (desugar, module S) where
18import Control.Monad
18import Control.Monad
19+import Control.Arrow ((>>>))
20import Language.PureScript.Declarations
21import Language.PureScript.Declarations
@@ -25,10 +26,13 @@ import Language.PureScript.Sugar.CaseDeclarations as S
25import Language.PureScript.Sugar.TypeDeclarations as S
26import Language.PureScript.Sugar.TypeDeclarations as S
26import Language.PureScript.Sugar.BindingGroups as S
27import Language.PureScript.Sugar.BindingGroups as S
27import Language.PureScript.Sugar.TypeClasses as S
28import Language.PureScript.Sugar.TypeClasses as S
29+import Language.PureScript.Sugar.Let as S
30-- The desugaring pipeline proceeds as follows:
32-- The desugaring pipeline proceeds as follows:
34+-- * Desugar let bindings
32-- * Introduce type synonyms for type class dictionaries
36-- * Introduce type synonyms for type class dictionaries
34-- * Rebracket user-defined binary operators
38-- * Rebracket user-defined binary operators
@@ -45,6 +49,7 @@ desugar :: [Module] -> Either String [Module]
45desugar = desugarTypeClasses
49desugar = desugarTypeClasses
46 >=> rebracket
50 >=> rebracket
47 >=> desugarDo
51 >=> desugarDo
52+ >=> desugarLetBindings
48− >=> desugarCasesModule
53+ >>> desugarCasesModule
49 >=> desugarTypeDeclarationsModule
54 >=> desugarTypeDeclarationsModule
50 >=> createBindingGroupsModule
55 >=> createBindingGroupsModule