> > As far as I know the puzzle doesn't have anything to do with initial F-algebras. I think the type for a list algebra should just be `[a] -> a`.

>

> @MatthewDoty This contradicts the definition given in the course notes. That's what I'm confused about.

Well, they did say at the top:

> (a) Given a List-algebra \\(a : List(X)\to X\\), construct a monoid on the set \\(X\\).

So the question clearly is concerned with `a : [x] -> x`, right?

You can find more notes on monoid-algebras in [Chapter 10 of Awodey's _Category Theory_](https://www.andrew.cmu.edu/course/80-413-713/notes/chap10.pdf) and [nlab](https://ncatlab.org/nlab/show/algebra+over+a+monad)

Remember: an F-algebra is just a function `a : f a -> a` where `f` is a functor. This problem demands a little more structure, as Bartosz was saying. So we need those extra rules I was mentioning.

>

> @MatthewDoty This contradicts the definition given in the course notes. That's what I'm confused about.

Well, they did say at the top:

> (a) Given a List-algebra \\(a : List(X)\to X\\), construct a monoid on the set \\(X\\).

So the question clearly is concerned with `a : [x] -> x`, right?

You can find more notes on monoid-algebras in [Chapter 10 of Awodey's _Category Theory_](https://www.andrew.cmu.edu/course/80-413-713/notes/chap10.pdf) and [nlab](https://ncatlab.org/nlab/show/algebra+over+a+monad)

Remember: an F-algebra is just a function `a : f a -> a` where `f` is a functor. This problem demands a little more structure, as Bartosz was saying. So we need those extra rules I was mentioning.