# GHC+DH Weekly Update #4, 2023-01-18

**URL:** <https://discourse.haskell.org/t/ghc-dh-weekly-update-4-2023-01-18/5608>\
**Category:** Uncategorized\
**Created:** [January 18, 2023, 8:17pm UTC](https://discourse.haskell.org/t/ghc-dh-weekly-update-4-2023-01-18/5608 "2023-01-18T20:17:11Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![david-christiansen](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/david-christiansen/32/2404_2.png) [@david-christiansen](https://discourse.haskell.org/u/david-christiansen)\
**Post date:** [January 19, 2023, 8:47am UTC](https://discourse.haskell.org/t/ghc-dh-weekly-update-4-2023-01-18/5608/2 "2023-01-19T08:47:51Z")

</div>

> [@int-index](#):
>
> Do we want to accept this?
> 
> ```haskell
> f (Proxy @($(TH.varT (TH.mkName "t")))) = Proxy @t
> 
> ```
> 
> Yes, I would say. It should be equivalent to:
> 
> ```haskell
> f (Proxy @t) = Proxy @t
> 
> ```

While this particular example seems like a no-brainer, what if we instead had:

```haskell
f (Proxy @t) x =
  case x of
    Proxy @($(doSomeStuff)) = Proxy @t

```

In this context, should my code really break when an update to `doSomeStuff` calls the name it generates `t` instead of `s`?

I guess if we’re fully committed to not having hygiene, the answer is “yes, and `doSomeStuff` should really only bind gensyms”.

**Edit**

I’ve now had my morning tea, and I just realized that your question was really “should splices be able to bind type variables at all?”. It seems to me that the answer should be identical to “should splices be able to bind term variables?”. Sorry for the distraction.

---

_[View the full topic](https://discourse.haskell.org/t/ghc-dh-weekly-update-4-2023-01-18/5608)._
