garyb / purescript-codec-argonaut

Bi-directional JSON codecs for argonaut
MIT License
38 stars 16 forks source link

Feature: Newtype wrapping & unwrapping #25

Closed eric-corumdigital closed 5 years ago

eric-corumdigital commented 5 years ago

Some version of this would be handy:

unwrapCodec ∷ ∀ m a b. Newtype a b ⇒ Applicative m ⇒ BasicCodec m a b
unwrapCodec = basicCodec (pure <<< unwrap) wrap

wrapCodec ∷ ∀ m a b. Newtype a b ⇒ Applicative m ⇒ BasicCodec m b a
wrapCodec = basicCodec (pure <<< wrap) unwrap

There is already a transitive dependency on purescript-newtypes.

garyb commented 5 years ago

The codecs are profunctors, so you can use unwrapIso / wrapIso from purescript-profunctor.

garyb commented 5 years ago

I guess I should mention this in the readme, given it's been asked before too: #23

eric-corumdigital commented 5 years ago

Wasn't aware of those definitions. Thanks.