I’m defining my own type like below:

```
type KOM{T}
model::Trie{T,Int64}
context::Vector{T}
cxt_length::Int64
# Constructor 1
# KOM{T}( _c::Int ) where{T} = new( Trie{T,Int64}(), Vector{T}(), _c )
# Constructor 2
# (::Type{KOM{T}}){T}(_c::Int64) = new{T}( Trie{T,Int64}(), Vector{T}(), _c );
end
```

I would like to know what is the different between the two types of constructers I used here (both are commented).

I don’t know which one is correct, because I sometimes randomly gets error while using one, but no error with other . I know this random error is very vauge, but I think understanding the difference will help me to understand the errors.