record DataLoader : Type -> Type -> TypeMkDataLoader : (datasetSize : Nat) -> Vect datasetSize (input, output) -> IsSucc datasetSize => DataLoader input output.dataset : ({rec:0} : DataLoader input output) -> Vect (datasetSize {rec:0}) (input, output).datasetSize : DataLoader input output -> Nat.isSucc : ({rec:0} : DataLoader input output) -> IsSucc (datasetSize {rec:0}).datasetSize : DataLoader input output -> NatdatasetSize : DataLoader input output -> Nat.dataset : ({rec:0} : DataLoader input output) -> Vect (datasetSize {rec:0}) (input, output)dataset : ({rec:0} : DataLoader input output) -> Vect (datasetSize {rec:0}) (input, output).isSucc : ({rec:0} : DataLoader input output) -> IsSucc (datasetSize {rec:0})isSucc : ({rec:0} : DataLoader input output) -> IsSucc (datasetSize {rec:0})inputs : DataLoader input output -> (n : Nat ** Vect n input)makeDataLoader : Monad m => IsSucc datasetSize => Vect datasetSize input -> (input -> m output) -> m (DataLoader input output)sample : DataLoader input output -> IO (input, output)Samples a single item from the dataset
handleData : DataLoader x y -> Costate (IO <!> pushDown (x, y))