packages feed

proton-0.0.1: src/Proton/Diffraction.hs

module Proton.Diffraction where

import Data.Distributive
import Proton.Types
import Data.Profunctor

diffract :: Distributive f => Optic (Star f) s t a b -> (a -> f b) -> s -> f t
diffract opt f = runStar $ opt (Star f)