Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3671644
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T02:30:44+00:00 2026-05-19T02:30:44+00:00

Ive come across some answers (here in SO) saying that Haskell has many dark

  • 0

Ive come across some answers (here in SO) saying that Haskell has many “dark corners” in its type system, and also some messy holes. Could someone elaborate on this?

Thanks in advance

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T02:30:45+00:00Added an answer on May 19, 2026 at 2:30 am

    I guess I should answer this, especially since two people so far have misinterpreted my remarks…

    Regarding non-termination, the remark in question was slight hyperbole for dramatic effect, and referred to non-termination at the value level. This was in context of comparing Haskell to theorem provers, in an answer to someone who mentioned type-enforced correctness properties as something they particularly appreciated. In that sense, the presence of ⊥ inhabiting otherwise empty types is a “flaw”, because it changes the meaning of a type like A -> B from “given an A, produces a B” into “given an A, either produces a B or crashes the program” which is, for obvious reasons, somewhat less satisfying from a proof-of-correctness standpoint.

    It’s also completely irrelevant to almost all day-to-day programming and no worse than any other general-purpose language because, of course, the possibility of non-termination is required for Turing-completeness.

    I don’t have any problem with UndecidableInstances. Actually, it bothers me less than ⊥ at the value level does because it only crashes GHC when compiling, not the finished program. OverlappingInstances is another matter, though, and the ad hoc mishmash of GHC extensions to provide little bits of things that would most naturally require dependent types certainly qualifies as “messy”.

    But keep in mind that most of the things I’m complaining about in Haskell are only a problem because of the otherwise very solid foundation. Most type systems in other statically typed languages aren’t even coherent enough to be called “wrong” in comparison, and cleaning up the stuff I’m calling “messy” is an active and ongoing area of research.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I've come across some code that has a singleton which creates / reuses a
I've come across some C++ code that has the following: typedef Request Request; Is
I've inherited some windows-mobile code that I've been bringing up-to-date. I've come across a
I've read many threads on here and haven't yet come across the right one.
I've come across some places in java libraries that I'm building against where the
I've come across some strange behavior trying to get files that start with a
I've come across some third-party code that overrides equals() but not hashCode(). Would I
I've come across some C++ code that looks like this (simplified for this post):
There are many different styles of variable names that I've come across over the
I've come across some SQL queries in Oracle that contain '(+)' and I have

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.