CurryInfo: wui2-3.1.0 / HTML.WUI.wJoinTuple

definition:
wJoinTuple :: (Data a, Data b) => WuiSpec a -> WuiSpec b -> WuiSpec (a,b)
wJoinTuple (WuiSpec wparamsa showa cora reada)
           (WuiSpec wparamsb showb corb readb) =
  WuiSpec (renderTuple, tupleError, const True) showc corc readc
 where
  render2joinrender render [h1,h2] =
    let h1s = unRenderTuple h1
        h2s = unRenderTuple h2
     in render (h1s ++ h2s)

  showc (render,errmsg,legal) nocheck (va,vb) =
    let (hea,rta) = showa wparamsa nocheck va
        (heb,rtb) = showb wparamsb nocheck vb
     in ((if nocheck || legal (va,vb)
            then render2joinrender render
            else renderError (render2joinrender render) errmsg) [hea,heb],
         states2state [rta,rtb])

  corc wparamsc (va,vb) = conditionOf wparamsc (va,vb) &&
                          cora wparamsa va && corb wparamsb vb

  readc env s =
    let [ra,rb] = state2states s
    in (reada env ra, readb env rb)
demand:
arguments 3 4
deterministic:
deterministic operation
documentation:
--- WUI combinator to combine two tuples into a joint tuple.
--- It is similar to wPair but renders both components as a single
--- tuple provided that the components are already rendered as tuples,
--- i.e., by the rendering function `renderTuple`.
--- This combinator is useful to define combinators for large tuples.
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,{WuiSpec},{WuiSpec}) |-> {WuiSpec}}
name:
wJoinTuple
precedence:
no precedence defined
result-values:
{WuiSpec}
signature:
(Prelude.Data a, Prelude.Data b) => WuiSpec a -> WuiSpec b -> WuiSpec (a, b)
solution-complete:
operation might suspend on free variables
terminating:
yes
totally-defined:
possibly non-reducible on same data term