The basic idea is to make it as easy to plot as octave, which means that
you provide no more information than you wish to provide. We provide
four plotting functions, which differ only in their output. One
produces a Layout1 that you can customize using other
Graphics.Rendering.Chart functions. The other three produce their
output directly. All three accept the same input and produce the same plots.

The plot functions accept a variable number of arguments. You must
provide a [Double] which defines the points on the x axis, which must
precede any of the y values. The y values may either be [Double] or
functions. After any given y value, you can give either Strings or
PlotKinds describing how you'd like that y printed.

Documentation

The main plotting function. The idea behind PlotType is shamelessly
copied from Text.Printf (and is not exported). All you need to know is
that your arguments need to be in class PlotArg. And PlotArg consists
of functions and [Double] and String and PlotKind or [PlotKind].