reactive-0.8.3: src/FRP/Reactive/VectorSpace.hs
{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, UndecidableInstances #-}
{-# OPTIONS_GHC -Wall -fno-warn-orphans #-}
module FRP.Reactive.VectorSpace( ) where
import FRP.Reactive.Behavior
import Control.Applicative
import Data.VectorSpace
import Data.AdditiveGroup
instance AdditiveGroup v => AdditiveGroup (Behavior v) where
zeroV = pure zeroV
(^+^) = liftA2 (^+^)
negateV = liftA negateV
instance VectorSpace v s => VectorSpace (Behavior v) s where
(*^) s = fmap (s *^)