My first guess would be that you have reloaded the namespace containing the definition of the record type and that state
is defined elsewhere (possibly at the REPL), and so composer.algorithm.markov.state.FirstOrderState
now refers to a different class from the one it used to at the time when state
was created.
Demo at the REPL:
user=> (defrecord Foo [])
user.Foo
user=> (def foo (->Foo))
#'user/foo
user=> (= (type foo) Foo)
true
user=> (defrecord Foo [])
user.Foo
user=> (= (type foo) Foo)
false