{-# Language FunctionalDependencies #-} -------------------------------------------------------------------------------- -- | -- Module : Data.Measured.Class -- Copyright : (C) Frank Staals -- License : see the LICENSE file -- Maintainer : Frank Staals -------------------------------------------------------------------------------- module Data.Measured.Class where -- | Things that can be measured. class Semigroup v => Measured v a | a -> v where measure :: a -> v -- | Things that can be inserted. class Measured v a => CanInsert v a where insertA :: a -> v -> v -- | Things that can be deleted. class Measured v a => CanDelete v a where deleteA :: a -> v -> Maybe v