module Pandora.Paradigm.Structure.Variation.Substructure (Substructure (..)) where

import Pandora.Paradigm.Inventory.Optics (type (:-.))

class Substructure f t where
        type Output (f :: * -> k) (t :: * -> *) a = r | r -> f t a
        sub :: t a :-. Output f t a