From 11d18a7026a9c07af6203afde58aba6bc452244f Mon Sep 17 00:00:00 2001 From: pilfer-pandex <47340789+pilfer-pandex@users.noreply.github.com> Date: Fri, 23 Jul 2021 19:11:00 -0400 Subject: [PATCH] king: properly mark named I hope in th --- pkg/hs/urbit-noun-core/lib/Urbit/Noun/TH.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/hs/urbit-noun-core/lib/Urbit/Noun/TH.hs b/pkg/hs/urbit-noun-core/lib/Urbit/Noun/TH.hs index 808b82a84f..834bca78fe 100644 --- a/pkg/hs/urbit-noun-core/lib/Urbit/Noun/TH.hs +++ b/pkg/hs/urbit-noun-core/lib/Urbit/Noun/TH.hs @@ -107,12 +107,14 @@ addErrTag :: String -> Exp -> Exp addErrTag tag exp = -- This spurious let is inserted so we can get better cost center data -- during heap profiling. - LetE [ValD (VarP nom) (NormalB bod) []] (VarE nom) + LetE [ValD (VarP nom) (NormalB nam) []] + $ InfixE (Just $ VarE nom) (VarE (mkName ".")) (Just exp) where -- XX arguably we should use newName rather than mkName here nom = mkName $ "named_" ++ filter C.isAlphaNum tag str = LitE $ StringL tag - bod = InfixE (Just $ AppE (VarE 'named) str) (VarE (mkName ".")) (Just exp) + nam = LamE [VarP $ mkName "x"] $ AppE (AppE (VarE 'named) str) + $ VarE (mkName "x") deriveFromNoun :: Name -> Q [Dec] deriveFromNoun tyName = do