packages feed

data-layer-1.0.4: src/Data/Abstract.hs

module Data.Abstract where

import Control.Lens



type family Abstract a

class HasAbstract a where abstract :: Lens' a (Abstract a)
                          default abstract :: IsAbstract a => Lens' a (Abstract a)
                          abstract = abstracted

class IsAbstract a where abstracted :: Iso' a (Abstract a)