<div dir="auto">I've been a bit upset by the challenges Template Haskell poses for type inference. For example,<div dir="auto"><br></div><div dir="auto">(3 :: Int) == $$(...)</div><div dir="auto"><br></div><div dir="auto">may typecheck when</div><div dir="auto"><br></div><div dir="auto">$$(...) == (3 :: Int)</div><div dir="auto"><br></div><div dir="auto">does not. I don't imagine this problem can be solved in general, but I'm rather curious whether it might be possible to solve for "pure" splices, with types that look like</div><div dir="auto"><br></div><div dir="auto">forall m. Quote m => Code m a</div><div dir="auto"><br></div><div dir="auto">Would it be possible to get full bidirectional inference for these if they were somehow marked specially by the user? For instance, if I wrote</div><div dir="auto"><br></div><div dir="auto">$$$e</div><div dir="auto"><br></div><div dir="auto">that could mean e should be interpreted as having some type</div><div dir="auto"><br></div><div dir="auto">PCode a</div><div dir="auto"><br></div><div dir="auto">where</div><div dir="auto"><br></div><div dir="auto">newtype PCode a = PCode (forall m. Quote m => a)</div></div>