gl-0.9: Complete OpenGL raw bindings
Safe HaskellNone
LanguageHaskell2010

Graphics.GL.Ext.NV.VertexProgram

Synopsis

Extension Support

gl_NV_vertex_program :: Bool Source #

Checks that the GL_NV_vertex_program extension is available.

GL_NV_vertex_program

glAreProgramsResidentNV :: MonadIO m => GLsizei -> Ptr GLuint -> Ptr GLboolean -> m GLboolean Source #

Usage: glAreProgramsResidentNV n programs residences

The parameter residences is a Boolean, one of: GL_FALSE, GL_TRUE.

The length of programs should be n.

The length of residences should be n.

glBindProgramNV :: MonadIO m => GLenum -> GLuint -> m () Source #

Usage: glBindProgramNV target id

The parameter target is a VertexAttribEnumNV.

This command is an alias for glBindProgramARB.

glDeleteProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m () Source #

Usage: glDeleteProgramsNV n programs

The length of programs should be n.

This command is an alias for glDeleteProgramsARB.

glExecuteProgramNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m () Source #

Usage: glExecuteProgramNV target id params

The parameter target is a VertexAttribEnumNV.

The length of params should be 4.

glGenProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m () Source #

Usage: glGenProgramsNV n programs

The length of programs should be n.

This command is an alias for glGenProgramsARB.

glGetProgramParameterdvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLdouble -> m () Source #

Usage: glGetProgramParameterdvNV target index pname params

The parameter target is a VertexAttribEnumNV.

The parameter pname is a VertexAttribEnumNV.

The length of params should be 4.

glGetProgramParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m () Source #

Usage: glGetProgramParameterfvNV target index pname params

The parameter target is a VertexAttribEnumNV.

The parameter pname is a VertexAttribEnumNV.

The length of params should be 4.

glGetProgramStringNV :: MonadIO m => GLuint -> GLenum -> Ptr GLubyte -> m () Source #

Usage: glGetProgramStringNV id pname program

The parameter pname is a VertexAttribEnumNV.

The parameter program is a ProgramCharacterNV.

The length of program should be COMPSIZE(id,pname).

glGetProgramivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m () Source #

Usage: glGetProgramivNV id pname params

The parameter pname is a VertexAttribEnumNV.

The length of params should be 4.

glGetTrackMatrixivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m () Source #

Usage: glGetTrackMatrixivNV target address pname params

The parameter target is a VertexAttribEnumNV.

The parameter pname is a VertexAttribEnumNV.

The length of params should be 1.

glGetVertexAttribPointervNV :: MonadIO m => GLuint -> GLenum -> Ptr (Ptr ()) -> m () Source #

Usage: glGetVertexAttribPointervNV index pname pointer

The parameter pname is a VertexAttribEnumNV.

The length of pointer should be 1.

This command is an alias for glGetVertexAttribPointerv.

glGetVertexAttribdvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLdouble -> m () Source #

Usage: glGetVertexAttribdvNV index pname params

The parameter pname is a VertexAttribEnumNV.

The length of params should be 1.

This command is an alias for glGetVertexAttribdv.

glGetVertexAttribfvNV :: MonadIO m => GLuint -> GLenum -> Ptr GLfloat -> m () Source #

Usage: glGetVertexAttribfvNV index pname params

The parameter pname is a VertexAttribEnumNV.

The length of params should be 1.

This command is an alias for glGetVertexAttribfv.

glGetVertexAttribivNV :: MonadIO m => GLuint -> GLenum -> Ptr GLint -> m () Source #

Usage: glGetVertexAttribivNV index pname params

The parameter pname is a VertexAttribEnumNV.

The length of params should be 1.

This command is an alias for glGetVertexAttribiv.

glIsProgramNV :: MonadIO m => GLuint -> m GLboolean Source #

Usage: glIsProgramNV id

This command is an alias for glIsProgramARB.

glLoadProgramNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLubyte -> m () Source #

Usage: glLoadProgramNV target id len program

The parameter target is a VertexAttribEnumNV.

The length of program should be len.

glProgramParameter4dNV :: MonadIO m => GLenum -> GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m () Source #

Usage: glProgramParameter4dNV target index x y z w

The parameter target is a VertexAttribEnumNV.

The vector equivalent of this command is glProgramParameter4dvNV.

glProgramParameter4dvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLdouble -> m () Source #

Usage: glProgramParameter4dvNV target index v

The parameter target is a VertexAttribEnumNV.

The length of v should be 4.

glProgramParameter4fNV :: MonadIO m => GLenum -> GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m () Source #

Usage: glProgramParameter4fNV target index x y z w

The parameter target is a VertexAttribEnumNV.

The vector equivalent of this command is glProgramParameter4fvNV.

glProgramParameter4fvNV :: MonadIO m => GLenum -> GLuint -> Ptr GLfloat -> m () Source #

Usage: glProgramParameter4fvNV target index v

The parameter target is a VertexAttribEnumNV.

The length of v should be 4.

glProgramParameters4dvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLdouble -> m () Source #

Usage: glProgramParameters4dvNV target index count v

The parameter target is a VertexAttribEnumNV.

The length of v should be count*4.

glProgramParameters4fvNV :: MonadIO m => GLenum -> GLuint -> GLsizei -> Ptr GLfloat -> m () Source #

Usage: glProgramParameters4fvNV target index count v

The parameter target is a VertexAttribEnumNV.

The length of v should be count*4.

glRequestResidentProgramsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m () Source #

Usage: glRequestResidentProgramsNV n programs

The length of programs should be n.

glTrackMatrixNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLenum -> m () Source #

Usage: glTrackMatrixNV target address matrix transform

The parameter target is a VertexAttribEnumNV.

The parameter matrix is a VertexAttribEnumNV.

The parameter transform is a VertexAttribEnumNV.

glVertexAttrib1dNV :: MonadIO m => GLuint -> GLdouble -> m () Source #

Usage: glVertexAttrib1dNV index x

This command is an alias for glVertexAttrib1d.

The vector equivalent of this command is glVertexAttrib1dvNV.

glVertexAttrib1dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m () Source #

Usage: glVertexAttrib1dvNV index v

The length of v should be 1.

This command is an alias for glVertexAttrib1dv.

glVertexAttrib1fNV :: MonadIO m => GLuint -> GLfloat -> m () Source #

Usage: glVertexAttrib1fNV index x

This command is an alias for glVertexAttrib1f.

The vector equivalent of this command is glVertexAttrib1fvNV.

glVertexAttrib1fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m () Source #

Usage: glVertexAttrib1fvNV index v

The length of v should be 1.

This command is an alias for glVertexAttrib1fv.

glVertexAttrib1sNV :: MonadIO m => GLuint -> GLshort -> m () Source #

Usage: glVertexAttrib1sNV index x

This command is an alias for glVertexAttrib1s.

The vector equivalent of this command is glVertexAttrib1svNV.

glVertexAttrib1svNV :: MonadIO m => GLuint -> Ptr GLshort -> m () Source #

Usage: glVertexAttrib1svNV index v

The length of v should be 1.

This command is an alias for glVertexAttrib1sv.

glVertexAttrib2dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> m () Source #

Usage: glVertexAttrib2dNV index x y

This command is an alias for glVertexAttrib2d.

The vector equivalent of this command is glVertexAttrib2dvNV.

glVertexAttrib2dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m () Source #

Usage: glVertexAttrib2dvNV index v

The length of v should be 2.

This command is an alias for glVertexAttrib2dv.

glVertexAttrib2fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> m () Source #

Usage: glVertexAttrib2fNV index x y

This command is an alias for glVertexAttrib2f.

The vector equivalent of this command is glVertexAttrib2fvNV.

glVertexAttrib2fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m () Source #

Usage: glVertexAttrib2fvNV index v

The length of v should be 2.

This command is an alias for glVertexAttrib2fv.

glVertexAttrib2sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> m () Source #

Usage: glVertexAttrib2sNV index x y

This command is an alias for glVertexAttrib2s.

The vector equivalent of this command is glVertexAttrib2svNV.

glVertexAttrib2svNV :: MonadIO m => GLuint -> Ptr GLshort -> m () Source #

Usage: glVertexAttrib2svNV index v

The length of v should be 2.

This command is an alias for glVertexAttrib2sv.

glVertexAttrib3dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> m () Source #

Usage: glVertexAttrib3dNV index x y z

This command is an alias for glVertexAttrib3d.

The vector equivalent of this command is glVertexAttrib3dvNV.

glVertexAttrib3dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m () Source #

Usage: glVertexAttrib3dvNV index v

The length of v should be 3.

This command is an alias for glVertexAttrib3dv.

glVertexAttrib3fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> m () Source #

Usage: glVertexAttrib3fNV index x y z

This command is an alias for glVertexAttrib3f.

The vector equivalent of this command is glVertexAttrib3fvNV.

glVertexAttrib3fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m () Source #

Usage: glVertexAttrib3fvNV index v

The length of v should be 3.

This command is an alias for glVertexAttrib3fv.

glVertexAttrib3sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> m () Source #

Usage: glVertexAttrib3sNV index x y z

This command is an alias for glVertexAttrib3s.

The vector equivalent of this command is glVertexAttrib3svNV.

glVertexAttrib3svNV :: MonadIO m => GLuint -> Ptr GLshort -> m () Source #

Usage: glVertexAttrib3svNV index v

The length of v should be 3.

This command is an alias for glVertexAttrib3sv.

glVertexAttrib4dNV :: MonadIO m => GLuint -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m () Source #

Usage: glVertexAttrib4dNV index x y z w

This command is an alias for glVertexAttrib4d.

The vector equivalent of this command is glVertexAttrib4dvNV.

glVertexAttrib4dvNV :: MonadIO m => GLuint -> Ptr GLdouble -> m () Source #

Usage: glVertexAttrib4dvNV index v

The length of v should be 4.

This command is an alias for glVertexAttrib4dv.

glVertexAttrib4fNV :: MonadIO m => GLuint -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m () Source #

Usage: glVertexAttrib4fNV index x y z w

This command is an alias for glVertexAttrib4f.

The vector equivalent of this command is glVertexAttrib4fvNV.

glVertexAttrib4fvNV :: MonadIO m => GLuint -> Ptr GLfloat -> m () Source #

Usage: glVertexAttrib4fvNV index v

The length of v should be 4.

This command is an alias for glVertexAttrib4fv.

glVertexAttrib4sNV :: MonadIO m => GLuint -> GLshort -> GLshort -> GLshort -> GLshort -> m () Source #

Usage: glVertexAttrib4sNV index x y z w

This command is an alias for glVertexAttrib4s.

The vector equivalent of this command is glVertexAttrib4svNV.

glVertexAttrib4svNV :: MonadIO m => GLuint -> Ptr GLshort -> m () Source #

Usage: glVertexAttrib4svNV index v

The length of v should be 4.

This command is an alias for glVertexAttrib4sv.

glVertexAttrib4ubNV :: MonadIO m => GLuint -> GLubyte -> GLubyte -> GLubyte -> GLubyte -> m () Source #

Usage: glVertexAttrib4ubNV index x y z w

The parameter x is a ColorUB.

The parameter y is a ColorUB.

The parameter z is a ColorUB.

The parameter w is a ColorUB.

This command is an alias for glVertexAttrib4Nub.

The vector equivalent of this command is glVertexAttrib4ubvNV.

glVertexAttrib4ubvNV :: MonadIO m => GLuint -> Ptr GLubyte -> m () Source #

Usage: glVertexAttrib4ubvNV index v

The parameter v is a ColorUB.

The length of v should be 4.

This command is an alias for glVertexAttrib4Nubv.

glVertexAttribPointerNV :: MonadIO m => GLuint -> GLint -> GLenum -> GLsizei -> Ptr () -> m () Source #

Usage: glVertexAttribPointerNV index fsize type stride pointer

The parameter type is a VertexAttribEnumNV.

The length of pointer should be COMPSIZE(fsize,type,stride).

glVertexAttribs1dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m () Source #

Usage: glVertexAttribs1dvNV index count v

The length of v should be count.

glVertexAttribs1fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m () Source #

Usage: glVertexAttribs1fvNV index count v

The length of v should be count.

glVertexAttribs1svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m () Source #

Usage: glVertexAttribs1svNV index count v

The length of v should be count.

glVertexAttribs2dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m () Source #

Usage: glVertexAttribs2dvNV index count v

The length of v should be count*2.

glVertexAttribs2fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m () Source #

Usage: glVertexAttribs2fvNV index count v

The length of v should be count*2.

glVertexAttribs2svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m () Source #

Usage: glVertexAttribs2svNV index count v

The length of v should be count*2.

glVertexAttribs3dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m () Source #

Usage: glVertexAttribs3dvNV index count v

The length of v should be count*3.

glVertexAttribs3fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m () Source #

Usage: glVertexAttribs3fvNV index count v

The length of v should be count*3.

glVertexAttribs3svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m () Source #

Usage: glVertexAttribs3svNV index count v

The length of v should be count*3.

glVertexAttribs4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLdouble -> m () Source #

Usage: glVertexAttribs4dvNV index count v

The length of v should be count*4.

glVertexAttribs4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLfloat -> m () Source #

Usage: glVertexAttribs4fvNV index count v

The length of v should be count*4.

glVertexAttribs4svNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLshort -> m () Source #

Usage: glVertexAttribs4svNV index count v

The length of v should be count*4.

glVertexAttribs4ubvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> m () Source #

Usage: glVertexAttribs4ubvNV index count v

The parameter v is a ColorUB.

The length of v should be count*4.

pattern GL_ATTRIB_ARRAY_POINTER_NV :: (Eq a, Num a) => a Source #

pattern GL_ATTRIB_ARRAY_SIZE_NV :: (Eq a, Num a) => a Source #

pattern GL_ATTRIB_ARRAY_STRIDE_NV :: (Eq a, Num a) => a Source #

pattern GL_ATTRIB_ARRAY_TYPE_NV :: (Eq a, Num a) => a Source #

pattern GL_CURRENT_ATTRIB_NV :: (Eq a, Num a) => a Source #

pattern GL_CURRENT_MATRIX_NV :: (Eq a, Num a) => a Source #

pattern GL_IDENTITY_NV :: (Eq a, Num a) => a Source #

pattern GL_INVERSE_NV :: (Eq a, Num a) => a Source #

pattern GL_INVERSE_TRANSPOSE_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB0_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB10_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB11_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB12_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB13_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB14_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB15_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB1_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB2_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB3_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB4_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB5_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB6_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB7_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB8_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP1_VERTEX_ATTRIB9_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB0_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB10_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB11_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB12_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB13_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB14_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB15_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB1_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB2_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB3_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB4_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB5_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB6_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB7_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB8_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MAP2_VERTEX_ATTRIB9_4_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX0_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX1_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX2_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX3_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX4_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX5_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX6_NV :: (Eq a, Num a) => a Source #

pattern GL_MATRIX7_NV :: (Eq a, Num a) => a Source #

pattern GL_MAX_TRACK_MATRICES_NV :: (Eq a, Num a) => a Source #

pattern GL_MODELVIEW_PROJECTION_NV :: (Eq a, Num a) => a Source #

pattern GL_PROGRAM_ERROR_POSITION_NV :: (Eq a, Num a) => a Source #

pattern GL_PROGRAM_LENGTH_NV :: (Eq a, Num a) => a Source #

pattern GL_PROGRAM_PARAMETER_NV :: (Eq a, Num a) => a Source #

pattern GL_PROGRAM_RESIDENT_NV :: (Eq a, Num a) => a Source #

pattern GL_PROGRAM_STRING_NV :: (Eq a, Num a) => a Source #

pattern GL_PROGRAM_TARGET_NV :: (Eq a, Num a) => a Source #

pattern GL_TRACK_MATRIX_NV :: (Eq a, Num a) => a Source #

pattern GL_TRACK_MATRIX_TRANSFORM_NV :: (Eq a, Num a) => a Source #

pattern GL_TRANSPOSE_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY0_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY10_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY11_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY12_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY13_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY14_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY15_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY1_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY2_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY3_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY4_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY5_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY6_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY7_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY8_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_ATTRIB_ARRAY9_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_PROGRAM_BINDING_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_PROGRAM_NV :: (Eq a, Num a) => a Source #

pattern GL_VERTEX_STATE_PROGRAM_NV :: (Eq a, Num a) => a Source #