-- | Layer tokens and the 'Resolvable' type family. -- -- Layers are uninhabited types that serve as type-level tags -- in the 'Judgment' GADT. Jurisdictions may define their own -- layer tokens in addition to the built-in ones. module Deontic.Core.Layer ( Base, Proviso, SpecialRule , Resolvable ) where import Data.Kind (Type) -- | 원칙 (general rule) data Base -- | 단서 (proviso/exception) data Proviso -- | 특칙 (lex specialis) data SpecialRule -- | Maps an act type to its full override layer stack. -- Each act type provides a type instance. type family Resolvable act :: [Type]