Haskell Language Common monads as free monads Free (Const c) ~~ Either c

Help us to keep this website almost Ad Free! It takes only 10 seconds of your time:
> Step 1: Go view our video on YouTube: EF Core Bulk Extensions
> Step 2: And Like the video. BONUS: You can also share it!

Example

Given

data Const c a = Const c

we have

data Free (Const c) a
     = Pure a
     | Free (Const c)

which is isomorphic to

data Either c a
     = Right a
     | Left c


Got any Haskell Language Question?