def cons_compatible
stelliferous@0.0.2.0 · tensor_band_concat.bend:64
import stelliferous@0.0.2.0/tensor_band_concat.bend as TensorBandConcat
import Base
import stelliferous@0.0.2.0/tensor.bend as Tensors
import stelliferous@0.0.2.0/tensor_band.bend as Bands
64def cons_compatible(~Element: Data,first: Tensors.Tensor<Element> & Maybe<&2,Bands.Plan>,
65 rest: (Tensors.Parts<Element> & Maybe<&2,Bands.Plan>) & Bool) -> (Tensors.Parts<Element> & Maybe<&2,Bands.Plan>) & Bool:
66 (tensor,first_layout) = first
67 (rest_and_layout,compatible) = rest
68 (rest_parts,rest_layout) = rest_and_layout
69 +first_layout = {first_layout : Maybe<&2,Bands.Plan>}
70 +rest_layout = {rest_layout : Maybe<&2,Bands.Plan>}
71 ((Tensors.Cons{tensor,rest_parts},first_plan(first_layout,rest_layout)),compatible && compatible_plans(first_layout,rest_layout))