F# Class with Generics : 'constructor deprecated' error

Posted by akaphenom on Stack Overflow See other posts from Stack Overflow or by akaphenom
Published on 2010-05-08T12:36:51Z Indexed on 2010/05/08 12:48 UTC
Read the original article Hit count: 442

Filed under:
|
|
|

I am trying to create a a class that will store a time series of data - organized by groups, but I had some compile errors so I stripped down to the basics (just a simple instantiation) and still can't overcome the compile error. I was hoping some one may have seen this issue before. Clas is defined as:

type TimeSeriesQueue<'V, 'K when 'K: comparison> = class
        val private m_daysInCache: int  
        val private m_cache: Map<'K, 'V list ref > ref;
        val private m_getKey: ('V -> 'K) ;

        private new(getKey)  = {
            m_cache = ref Map.empty
            m_daysInCache  = 7 ;
            m_getKey = getKey ;
        }

end

So that looks OK to me (it may not be, but doesnt have any errors or warnings) - the instantiation gets the error:

type tempRec = {
    someKey: string ;
    someVal1: int ;
    someVal2: int ;
}

let keyFunc r:tempRec = r.someKey
// error occurs on the following line
let q = new TimeSeriesQueue<tempRec, string> keyFunc

This construct is deprecated: The use of the type syntax 'int C' and 'C ' is not permitted here. Consider adjusting this type to be written in the form 'C'

NOTE This may be simple stupidity - I am just getting back from holiday and my brain is still on time zone lag...

© Stack Overflow or respective owner

Related posts about F#

Related posts about class