{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TypeFamilies #-} module Hcompta.Posting where import Data.Foldable (Foldable(..)) import Hcompta.Account import Hcompta.Amount class ( Account (Posting_Account p) , Amount (Posting_Amount p) , Foldable (Posting_Amounts p) ) => Posting p where type Posting_Account p type Posting_Amount p type Posting_Amounts p :: * -> * posting_account :: p -> Posting_Account p posting_amounts :: p -> Posting_Amounts p (Posting_Amount p)