data SideOrCorner : TypeLeft : SideOrCornerRight : SideOrCornerTop : SideOrCornerBottom : SideOrCornerTopLeft : SideOrCornerTopRight : SideOrCornerBottomLeft : SideOrCornerBottomRight : SideOrCornerInterpolation SideOrCornerdata LinearDirection : TypeDeflt : LinearDirectionAngle : Angle -> LinearDirectionTo : SideOrCorner -> LinearDirectionCast Angle LinearDirectionInterpolation LinearDirectiondata LengthOrPercentage : TypeL : Length -> LengthOrPercentageP : Percentage -> LengthOrPercentageCast Length LengthOrPercentageCast Percentage LengthOrPercentageInterpolation LengthOrPercentagedata CSLState : TypeInterpolation (ColorStopListElem st)Interpolation (ColorStopList st)data ColorStopListElem : CSLState -> TypeC : Color -> (ps : List LengthOrPercentage) -> {auto 0 _ : LTE (length ps) 2} -> ColorStopListElem StopH : LengthOrPercentage -> ColorStopListElem HintInterpolation (ColorStopListElem st)col : Color -> ColorStopListElem Stopdata Match : CSLState -> CSLState -> Typedata ColorStopList : CSLState -> TypeNil : ColorStopList Empty(::) : ColorStopListElem sh -> ColorStopList st -> {auto 0 _ : Match sh st} -> ColorStopList shInterpolation (ColorStopList st)data Gradient : TypeLinear : LinearDirection -> ColorStopList Stop -> GradientInterpolation Gradient