{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}

module Cardano.Ledger.Torsor where

import Data.Kind (Type)

class Torsor a where
  type Delta a :: Type
  addDelta :: a -> Delta a -> a
  toDelta :: a -> Delta a