packages feed

stratosphere-1.0.0: src/Stratosphere/Property.hs

{-# LANGUAGE AllowAmbiguousTypes    #-}
{-# LANGUAGE FunctionalDependencies #-}

module Stratosphere.Property where

import Data.Kind (Type)
import GHC.TypeLits (Symbol)

class Property (propertyName :: Symbol) (record :: Type) where
  type PropertyType propertyName record :: Type

  set :: PropertyType propertyName record -> record -> record