I had a question about one of the implementations of the duplicate function as described in 99 Haskell Questions (https://wiki.haskell.org/99_questions/Solutions/14).
One of the solutions uses the list instance of Applicative. That particular solution is
duplicate = (<**> [id,id])
I was wondering why, when I tried to implement duplicate instead as
duplicate' = ([id,id] <*>)
I get
duplicate' [1,2,3] = [1,2,3,1,2,3]
Instead of [1,1,2,2,3,3].
Thanks!