{-# LANGUAGE DoRec #-} ------------------------------------------------------------------------------- --- $Id: Middle.hs#3 2010/09/30 16:19:34 REDMOND\\satnams $ ------------------------------------------------------------------------------- module Lava.Middle (middle) where import Lava.Netlist import Lava.Combinators ------------------------------------------------------------------------------- -- | Place components in a horizontal middle arrangement middle :: (a -> Out c) -> ((c, d) -> Out e) -> (b -> Out d) -> (a, b) -> Out e middle r s t (a, b) = do rec { (x, (z, y)) <- hpar2 r (hpar2 s t) (a, ((x,y), b)) } return z -------------------------------------------------------------------------------