let of_frame_kind_t t = match (T.deref t).T.descr with
| T.Constr { T.name="stream_kind" ; T.params=[_,audio;_,video;_,midi] } ->
{ Frame. audio=audio; video=video; midi=midi }
| T.EVar (j,c) ->
let audio = type_of_int (Lazy.force Frame.audio_channels) in
let video = type_of_int (Lazy.force Frame.video_channels) in
let midi = type_of_int (Lazy.force Frame.midi_channels) in
T.bind t (frame_kind_t audio video midi) ;
{ Frame. audio=audio; video=video; midi=midi }
| _ -> assert false