# The Hazy Haskell Compiler

**URL:** <https://discourse.haskell.org/t/the-hazy-haskell-compiler/13497>\
**Category:** Announcements\
**Created:** [January 7, 2026, 9:35am UTC](https://discourse.haskell.org/t/the-hazy-haskell-compiler/13497 "2026-01-07T09:35:20Z")\
**Posts on this page:** 1\
**Showing post:** 34

<div class="post-metadata">

**Author:** ![superstar64](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.haskell.org/superstar64/32/5308_2.png) [@superstar64](https://discourse.haskell.org/u/superstar64)\
**Post date:** [September 26, 2026, 3:25am UTC](https://discourse.haskell.org/t/the-hazy-haskell-compiler/13497/34 "2026-09-26T03:25:53Z")

</div>

> [@ApothecaLabs](#):
>
> I too think that Haskell’s import system could use some love.

Have you seen the import proposals? [Several proposals for Import syntax](https://discourse.haskell.org/t/several-proposals-for-import-syntax/14504). I’m kinda like `exposing` (with my addendum: [import-exposing-impqual by akhra · Pull Request #763 · ghc-proposals/ghc-proposals · GitHub](https://github.com/ghc-proposals/ghc-proposals/pull/763#issuecomment-5284903499)).

> [@ApothecaLabs](#):
>
> but I often wish for things like a `foo as bar` syntax in imports to alias conflicting names.

If there were implemented, there would have to be some questions regarding fields and instance definitions that have to be answered. Consider something like this:

```haskell
import Point (Point, x as abc, y as xyz)
p1 = Point { abc = 1, xyz = 2 }
p2 = Point { x = 1, y = 2 }

```

Here, `p1` would be legal if selectors are their own standalone thing while `p2` would be legal if fields are attached to constructors. Haskell 2010 leans more toward `p1`, while Hazy (with `ConstructorsFields`) would use `p2`. A similar problem would happen with instance definitions too.

---

_[View the full topic](https://discourse.haskell.org/t/the-hazy-haskell-compiler/13497)._
