Skip to content

Commit 8d32d43

Browse files
committed
TH: refactor: parseExpr (ToText a -> Text)
1 parent 2f2609d commit 8d32d43

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

src/Nix/TH.hs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,20 @@ import Nix.Expr.Types.Annotated
1818
import Nix.Parser
1919

2020
quoteExprExp :: String -> ExpQ
21-
quoteExprExp s = do
22-
expr <- parseExpr s
23-
dataToExpQ
24-
(extQOnFreeVars metaExp expr `extQ` (pure . (TH.lift :: Text -> Q Exp)))
25-
expr
21+
quoteExprExp s =
22+
do
23+
expr <- parseExpr $ fromString s
24+
dataToExpQ
25+
(extQOnFreeVars metaExp expr `extQ` (pure . (TH.lift :: Text -> Q Exp)))
26+
expr
2627

2728
quoteExprPat :: String -> PatQ
28-
quoteExprPat s = do
29-
expr <- parseExpr s
30-
dataToPatQ
31-
(extQOnFreeVars metaPat expr)
32-
expr
29+
quoteExprPat s =
30+
do
31+
expr <- parseExpr $ fromString s
32+
dataToPatQ
33+
(extQOnFreeVars metaPat expr)
34+
expr
3335

3436
-- | Helper function.
3537
extQOnFreeVars
@@ -43,14 +45,14 @@ extQOnFreeVars
4345
-> NExpr
4446
-> b
4547
-> Maybe q
46-
extQOnFreeVars f e = extQ (const Nothing) (f $ freeVars e)
48+
extQOnFreeVars f = extQ (const Nothing) . f . freeVars
4749

48-
parseExpr :: (MonadFail m, ToText a) => a -> m NExpr
49-
parseExpr s =
50+
parseExpr :: (MonadFail m) => Text -> m NExpr
51+
parseExpr =
5052
either
5153
(fail . show)
5254
pure
53-
(parseNixText $ toText s)
55+
. parseNixText
5456

5557
freeVars :: NExpr -> Set VarName
5658
freeVars e = case unFix e of

0 commit comments

Comments
 (0)