HQu-0.0.0.0: src/Q/Options/ImpliedVol/TimeSlice.hs
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE AllowAmbiguousTypes#-}
{-# LANGUAGE FunctionalDependencies #-}
module Q.Options.ImpliedVol.TimeSlice
(
module Q.Types
, module Q.Options.ImpliedVol
, TimeSlice(..)
)
where
import Q.Types
import Q.Options.ImpliedVol
import Q.Options.Black76
class TimeSlice v k where
totalVar :: v -> k -> TotalVar
instance TimeSlice (k -> TotalVar) k where
totalVar f = f
instance TimeSlice Black76 k where
totalVar Black76{..} _ = TotalVar $ vol * vol * t
where (Vol vol) = b76Vol
(YearFrac t) = b76T