diff --git a/src/mol-comp/util.ts b/src/mol-comp/util.ts
index 29e347d32897623d0d1706e0e557c3e2f2524e3d..7677586498e4c8a6ff3684f9bd4e88ba4362c60c 100644
--- a/src/mol-comp/util.ts
+++ b/src/mol-comp/util.ts
@@ -24,7 +24,8 @@ function UniformlyChunked<S>(label: string, initialChunk: number, f: UniformlyCh
     return 0 as any;
 }
 
-const uniformPart = UniformlyChunked('Reading lines', 1000000, (size, state: { str: string, position: number, lines: string[] }) => {
+type LineReaderState = { str: string, position: number, lines: string[] }
+const uniformPart = UniformlyChunked('Reading lines', 1000000, (size, state: LineReaderState) => {
     state.position += size;
     state.lines.push('');
     return 0 /* number of lines read */;
@@ -32,8 +33,7 @@ const uniformPart = UniformlyChunked('Reading lines', 1000000, (size, state: { s
 
 function readLines(str: string): Computation<string[]> {
     return create(async ctx => {
-        const state = { str, position: 0, lines: [] };
-        await uniformPart(ctx, state);
+        const state = (await uniformPart(ctx, { str, position: 0, lines: [] }));
         return state.lines;
     });
 }