# Behaviours & Protocols

**URL:** <https://forum.elixirforum.com/t/behaviours-protocols/17245>\
**Category:** Discussions\
**Tags:** discussion, troubleshooting\
**Created:** [October 12, 2018, 10:06am UTC](https://forum.elixirforum.com/t/behaviours-protocols/17245 "2018-10-12T10:06:47Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![OvermindDL1](https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/overminddl1/32/2677_2.png) [@OvermindDL1](https://forum.elixirforum.com/u/OvermindDL1)\
**Post date:** [October 16, 2018, 6:03pm UTC](https://forum.elixirforum.com/t/behaviours-protocols/17245/7 "2018-10-16T18:03:46Z")

</div>

> [@jeremyjh](#):
>
> except they cannot be polymorphic only in the return type like they can be in Haskell. I don’t think its possible to implement `mempty` for example.

That is why something like `Enum.into/1` takes an argument that defines the type of the return (and why not ‘merge’ it since it is basically free at that point anyway).

---

_[View the full topic](https://forum.elixirforum.com/t/behaviours-protocols/17245)._
