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 6803179
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:18:47+00:00 2026-05-26T19:18:47+00:00

So I realize this is a possible duplicate question, as there a number of

  • 0

So I realize this is a possible duplicate question, as there a number of those errors reported on Stack Overflow, but none of the solutions seem to apply to my problem.

So I have the following function:

elementAt' :: Integral b => [a] -> b -> a
elementAt' [x:_] 1 = x
elementAt' [x:xs] y = elementAt' xs yminus1
    where yminus1 = y - 1

In case you’re wondering it’s problem 3 from 99 Haskell Problems. The goal of the function is to take as input a list and an index, and return the value at that index (starting at 1). I don’t want a solution to the problem, if I did I could just look at the ones provided. But I’m getting an error I don’t understand. I’m using eclipseFP, the eclipse plugin for haskell and it’s underlining the “[x:_]” and “[x:xs]” portions of the function with the following error:

Couldn't match type `a' with `[a]'
`a' is a rigid type variable bound by
the type signature for elementAt' :: Integral b => [a] -> b -> a

In all the threads that discuss this error that I’ve looked at the problem usually occurs when someone tries to give an incorrect output to something which expects a certain type. For example, returning the length of something (which is of type Int) to what should be a “Num a” variable type.

But in my case I’m not even providing a type for variable a. It should be able to be ANYTHING, right? So why am I getting this error? If I understood why I was getting the error I could fix it, but I just don’t understand.

Could someone please explain to me why I’m receiving this error?

Your help is much appreciated, thank you.
-Asaf

Edit: Every answer provided so far is correct, thank you all for the helpful information. I’m going to pick the one I believe to be most clear (I have to wait 5 minutes to do it though).

  • 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-26T19:18:48+00:00Added an answer on May 26, 2026 at 7:18 pm

    If you want to matching list to head and tail, you should use

    elementAt' (x:_) 1 = x
    

    So, finally

    elementAt' :: Integral b => [a] -> b -> a
    elementAt' (x:_) 1 = x
    elementAt' (x:xs) y = elementAt' xs yminus1
        where yminus1 = y - 1
    

    And

    λ> elementAt' [1,2,3] 2
    2
    

    Is it what you need?

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

Sidebar

Related Questions

Caveat: I realize this is potentially a server configuration question, but I thought there
I realize this perhaps a naive question but still I cant figure out how
I realize this is more of a hardware question, but this is also very
I realize this is probably a hopelessly newbie question, but what is the difference
I realize this is a basic question but I have searched online, been to
Possible Duplicate: How Random is System.Guid.NewGuid()? Based on this question I would like to
Note this is not a duplicate of this similar but different question ! My
I realize this would violate convention, but I'm curious to know if you can
I realize this is a rather odd request, but I was wondering if anyone
I realize this sounds a little crazy, but I'm working on a project for

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.