data ValueTy : Typerecord FieldTy : Type.name : FieldTy -> Stringname : FieldTy -> String.optional : FieldTy -> Booloptional : FieldTy -> Bool.ty : FieldTy -> ValueTyty : FieldTy -> ValueTydata TableTy : TypeAnd : FieldTy -> TableTy -> TableTyValueOf : ValueTy -> TypeFieldOf : FieldTy -> Typedata TableOf : TableTy -> Typedata ValueError : TypeExpectedType : ValueTy -> ValueErrorInsideArray : ValueError -> ValueErrorInsideTable : TableError -> ValueErrorBadEnumVal : String -> ValueErrordata TableError : TypeFieldError : String -> ValueError -> TableErrorExpectedField : String -> TableErrorUnexpectedFields : List String -> TableErrorprocessTable : (ty : TableTy) -> Table -> Either TableError (TableOf ty)processValue : (ty : ValueTy) -> Value -> Either ValueError (ValueOf ty)