arrow-kt / arrow-core

Λrrow Core is part of Λrrow, a functional companion to Kotlin's Standard Library

Home Page:http://arrow-kt.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Refactor Arrow making use of Arrow meta features [Draft ticket]

danimontoya opened this issue · comments

Since Arrow Meta is becoming stable we can start the integration into Arrow Core so we can make a nice refactor of current encoding by making use of all the Arrow meta features.

These are the first steps to get to the goal:

  • Enable the Arrow meta compiler plugin, so we can add it to the IDE. Here is the setup guide
  • Migrate the prelude module from meta into Arrow core, so we can make use of type proofs, Tuples, Unions, Refined types and so on. ( #247 )
  • Refactor typeclasses. Make use of Coercion/Extension/Given type proofs. Start refactor with Semigroup.
  • Deprecate current definition for Tuples and make use of the encoding done in Meta.
  • Benchmark Union types vs Sealed classes
  • More to be added here