CurryInfo: wui2-3.1.0 / HTML.WUI.wCons3

definition:
wCons3 :: (Data a, Data b, Data c, Data d) => (a -> b -> c -> d)
       -> WuiSpec a -> WuiSpec b -> WuiSpec c -> WuiSpec d
wCons3 cons (WuiSpec wparamsa showa cora reada)
            (WuiSpec wparamsb showb corb readb)
            (WuiSpec wparamsc showc corc readc) =
  WuiSpec (renderTuple, tupleError, const True) showd cord readd
 where
  showd (render,errmsg,legal) nocheck vd | cons va vb vc =:<= vd =
    let (hea,rta) = showa wparamsa nocheck va
        (heb,rtb) = showb wparamsb nocheck vb
        (hec,rtc) = showc wparamsc nocheck vc
     in ((if nocheck || legal (cons va vb vc)
            then render
            else renderError render errmsg) [hea,heb,hec],
         states2state [rta,rtb,rtc])
   where va,vb,vc free

  cord wparamsd vd | cons va vb vc =:<= vd =
    conditionOf wparamsd (cons va vb vc) &&
    cora wparamsa va &&
    corb wparamsb vb &&
    corc wparamsc vc            where va,vb,vc free

  readd env s =
    let [ra,rb,rc] = state2states s
    in cons (reada env ra) (readb env rb) (readc env rc)
demand:
arguments 6 7 8
deterministic:
possibly non-deterministic operation
documentation:
--- WUI combinator for constructors of arity 3.
--- The first argument is the ternary constructor.
--- The further arguments are the WUI specifications for the argument types.
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,_,_,_,{WuiSpec},{WuiSpec},{WuiSpec}) |-> {WuiSpec}}
name:
wCons3
precedence:
no precedence defined
result-values:
{WuiSpec}
signature:
(Prelude.Data a, Prelude.Data b, Prelude.Data c, Prelude.Data d) => (a -> b -> c
-> d) -> WuiSpec a -> WuiSpec b -> WuiSpec c -> WuiSpec d
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term