Hastructure-0.50.0: Cashflow modeling library for structured finance
Safe HaskellNone
LanguageHaskell2010

CreditEnhancement

Synopsis

Documentation

data LiqFacility Source #

Constructors

LiqFacility 

Fields

Instances

Instances details
UseRate LiqFacility Source # 
Instance details

Defined in CreditEnhancement

QueryByComment LiqFacility Source # 
Instance details

Defined in CreditEnhancement

Liable LiqFacility Source # 
Instance details

Defined in CreditEnhancement

FromJSON LiqFacility Source # 
Instance details

Defined in CreditEnhancement

ToJSON LiqFacility Source # 
Instance details

Defined in CreditEnhancement

Generic LiqFacility Source # 
Instance details

Defined in CreditEnhancement

Associated Types

type Rep LiqFacility 
Instance details

Defined in CreditEnhancement

type Rep LiqFacility = D1 ('MetaData "LiqFacility" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) (C1 ('MetaCons "LiqFacility" 'PrefixI 'True) (((S1 ('MetaSel ('Just "liqName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "liqType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LiqSupportType) :*: S1 ('MetaSel ('Just "liqBalance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance))) :*: ((S1 ('MetaSel ('Just "liqCredit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Balance)) :*: S1 ('MetaSel ('Just "liqCreditCalc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe LiqCreditCalc))) :*: (S1 ('MetaSel ('Just "liqRateType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RateType)) :*: S1 ('MetaSel ('Just "liqPremiumRateType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RateType))))) :*: (((S1 ('MetaSel ('Just "liqRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IRate)) :*: S1 ('MetaSel ('Just "liqPremiumRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IRate))) :*: (S1 ('MetaSel ('Just "liqDueIntDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "liqDueInt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance))) :*: ((S1 ('MetaSel ('Just "liqDuePremium") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance) :*: S1 ('MetaSel ('Just "liqStart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Date)) :*: (S1 ('MetaSel ('Just "liqEnds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "liqStmt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Statement)))))))
Show LiqFacility Source # 
Instance details

Defined in CreditEnhancement

Eq LiqFacility Source # 
Instance details

Defined in CreditEnhancement

Ord LiqFacility Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqFacility Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqFacility = D1 ('MetaData "LiqFacility" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) (C1 ('MetaCons "LiqFacility" 'PrefixI 'True) (((S1 ('MetaSel ('Just "liqName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "liqType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 LiqSupportType) :*: S1 ('MetaSel ('Just "liqBalance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance))) :*: ((S1 ('MetaSel ('Just "liqCredit") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Balance)) :*: S1 ('MetaSel ('Just "liqCreditCalc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe LiqCreditCalc))) :*: (S1 ('MetaSel ('Just "liqRateType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RateType)) :*: S1 ('MetaSel ('Just "liqPremiumRateType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe RateType))))) :*: (((S1 ('MetaSel ('Just "liqRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IRate)) :*: S1 ('MetaSel ('Just "liqPremiumRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe IRate))) :*: (S1 ('MetaSel ('Just "liqDueIntDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "liqDueInt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance))) :*: ((S1 ('MetaSel ('Just "liqDuePremium") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance) :*: S1 ('MetaSel ('Just "liqStart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Date)) :*: (S1 ('MetaSel ('Just "liqEnds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "liqStmt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Statement)))))))

data LiqSupportType Source #

Constructors

ReplenishSupport DatePattern Balance

Credit will be refresh by an interval

FixSupport Balance

Fixed credit amount

ByPct DealStats Rate

By a pct of formula

UnLimit

Unlimit credit support, like insurance company

Instances

Instances details
FromJSON LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

ToJSON LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

Generic LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

Show LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

Eq LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

Ord LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqSupportType Source # 
Instance details

Defined in CreditEnhancement

buildLiqResetAction :: [LiqFacility] -> Date -> [(String, Dates)] -> [(String, Dates)] Source #

update the reset events of liquidity provider

buildLiqRateResetAction :: [LiqFacility] -> Date -> [(String, Dates)] -> [(String, Dates)] Source #

update the rate reset events of liquidity provider

type LiquidityProviderName = String Source #

describle credit support

draw :: Amount -> Date -> LiqFacility -> LiqFacility Source #

draw cash from liquidity provider

accrueLiqProvider :: Date -> LiqFacility -> LiqFacility Source #

accure fee and interest of a liquidity provider and update credit available

data LiqDrawType Source #

Constructors

LiqToAcc

draw credit and deposit cash to account

LiqToBondInt

draw credit and pay to bond interest if any shortfall

LiqToBondPrin

draw credit and pay to bond principal if any shortfall

LiqToFee

draw credit and pay to a fee if there is a shortfall

Instances

Instances details
FromJSON LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

ToJSON LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

Generic LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

Associated Types

type Rep LiqDrawType 
Instance details

Defined in CreditEnhancement

type Rep LiqDrawType = D1 ('MetaData "LiqDrawType" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) ((C1 ('MetaCons "LiqToAcc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqToBondInt" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LiqToBondPrin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqToFee" 'PrefixI 'False) (U1 :: Type -> Type)))
Show LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

Eq LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

Ord LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqDrawType Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqDrawType = D1 ('MetaData "LiqDrawType" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) ((C1 ('MetaCons "LiqToAcc" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqToBondInt" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "LiqToBondPrin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqToFee" 'PrefixI 'False) (U1 :: Type -> Type)))

data LiqRepayType Source #

Constructors

LiqBal

repay oustanding balance of liquidation provider

LiqPremium

repay oustanding premium fee of lp

LiqInt

repay oustanding interest of lp

LiqRepayTypes [LiqRepayType]

repay by sequence

LiqResidual 
LiqOD 

Instances

Instances details
FromJSON LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

ToJSON LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

Generic LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

Associated Types

type Rep LiqRepayType 
Instance details

Defined in CreditEnhancement

type Rep LiqRepayType = D1 ('MetaData "LiqRepayType" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) ((C1 ('MetaCons "LiqBal" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LiqPremium" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqInt" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "LiqRepayTypes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LiqRepayType])) :+: (C1 ('MetaCons "LiqResidual" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqOD" 'PrefixI 'False) (U1 :: Type -> Type))))
Show LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

Eq LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

Ord LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqRepayType Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqRepayType = D1 ('MetaData "LiqRepayType" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) ((C1 ('MetaCons "LiqBal" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LiqPremium" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqInt" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "LiqRepayTypes" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LiqRepayType])) :+: (C1 ('MetaCons "LiqResidual" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LiqOD" 'PrefixI 'False) (U1 :: Type -> Type))))

data LiqCreditCalc Source #

Instances

Instances details
FromJSON LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

ToJSON LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

Generic LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

Associated Types

type Rep LiqCreditCalc 
Instance details

Defined in CreditEnhancement

type Rep LiqCreditCalc = D1 ('MetaData "LiqCreditCalc" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) (C1 ('MetaCons "IncludeDueInt" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IncludeDuePremium" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IncludeBoth" 'PrefixI 'False) (U1 :: Type -> Type)))
Show LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

Eq LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

Ord LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqCreditCalc Source # 
Instance details

Defined in CreditEnhancement

type Rep LiqCreditCalc = D1 ('MetaData "LiqCreditCalc" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) (C1 ('MetaCons "IncludeDueInt" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IncludeDuePremium" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "IncludeBoth" 'PrefixI 'False) (U1 :: Type -> Type)))

data CreditDefaultSwap Source #

Constructors

CDS 

Fields

Instances

Instances details
UseRate CreditDefaultSwap Source # 
Instance details

Defined in CreditEnhancement

Generic CreditDefaultSwap Source # 
Instance details

Defined in CreditEnhancement

Associated Types

type Rep CreditDefaultSwap 
Instance details

Defined in CreditEnhancement

type Rep CreditDefaultSwap = D1 ('MetaData "CreditDefaultSwap" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) (C1 ('MetaCons "CDS" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "cdsName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "cdsAccrue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DatePattern))) :*: (S1 ('MetaSel ('Just "cdsCoverage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DealStats) :*: S1 ('MetaSel ('Just "cdsDue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance))) :*: ((S1 ('MetaSel ('Just "cdsLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "cdsPremiumRefBalance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DealStats)) :*: (S1 ('MetaSel ('Just "cdsPremiumRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IRate) :*: S1 ('MetaSel ('Just "cdsRateType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RateType)))) :*: (((S1 ('MetaSel ('Just "cdsPremiumDue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance) :*: S1 ('MetaSel ('Just "cdsLastCalcDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date))) :*: (S1 ('MetaSel ('Just "cdsSettle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DatePattern)) :*: S1 ('MetaSel ('Just "cdsSettleDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)))) :*: ((S1 ('MetaSel ('Just "cdsNetCash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance) :*: S1 ('MetaSel ('Just "cdsStart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Date)) :*: (S1 ('MetaSel ('Just "cdsEnds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "cdsStmt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Statement)))))))
Show CreditDefaultSwap Source # 
Instance details

Defined in CreditEnhancement

Eq CreditDefaultSwap Source # 
Instance details

Defined in CreditEnhancement

Ord CreditDefaultSwap Source # 
Instance details

Defined in CreditEnhancement

type Rep CreditDefaultSwap Source # 
Instance details

Defined in CreditEnhancement

type Rep CreditDefaultSwap = D1 ('MetaData "CreditDefaultSwap" "CreditEnhancement" "Hastructure-0.50.0-9tFAxbqhtE23KiGoJqUlJG" 'False) (C1 ('MetaCons "CDS" 'PrefixI 'True) ((((S1 ('MetaSel ('Just "cdsName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "cdsAccrue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DatePattern))) :*: (S1 ('MetaSel ('Just "cdsCoverage") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DealStats) :*: S1 ('MetaSel ('Just "cdsDue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance))) :*: ((S1 ('MetaSel ('Just "cdsLast") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "cdsPremiumRefBalance") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 DealStats)) :*: (S1 ('MetaSel ('Just "cdsPremiumRate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IRate) :*: S1 ('MetaSel ('Just "cdsRateType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RateType)))) :*: (((S1 ('MetaSel ('Just "cdsPremiumDue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance) :*: S1 ('MetaSel ('Just "cdsLastCalcDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date))) :*: (S1 ('MetaSel ('Just "cdsSettle") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe DatePattern)) :*: S1 ('MetaSel ('Just "cdsSettleDate") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)))) :*: ((S1 ('MetaSel ('Just "cdsNetCash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Balance) :*: S1 ('MetaSel ('Just "cdsStart") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Date)) :*: (S1 ('MetaSel ('Just "cdsEnds") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Date)) :*: S1 ('MetaSel ('Just "cdsStmt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Statement)))))))